English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ниже приведен пример использования JDBC для обновления результатов набора данных, описанного в учебнике по Result Set.ResultSet.CONCUR_UPDATABLEиResultSet.TYPE_SCROLL_INSENSITIVEПример. Этот пример объясняет операции INSERT, UPDATE и DELETE на таблице.
Следует отметить, что таблица, с которой вы работаете, должна быть правильно настроена с ключом PRIMARY.
Этот пример кода написан на основе настроек环境和 базы данных в предыдущих главах.
Копируйте и вставляйте следующий пример в JDBCExample.java, как компилируйте и запускайте:
//Шаг 1. Импорт необходимых пакетов import java.sql.*; public class JDBCExample { // Название JDBC драйвера и URL базы данных static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Кредитные данные базы данных static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; try{ //Шаг 2: Регистрация JDBC драйвера Class.forName("com.mysql.jdbc.Driver"); //Шаг 3: Установление соединения System.out.println("Подключение к базе данных..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //Шаг 4: Выполнение запроса для создания утверждения // Обязательные параметры примера RS. System.out.println("Создание утверждения..."); Statement stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); //Шаг 5: Выполните запрос String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); System.out.println("Список результатов для справки...."); printRs(rs); //Шаг 6: Пересмотрите результаты и увеличьте возраст на 5 //Переместитесь в BFR, чтобы цикл while работал normalmente rs.beforeFirst(); //Шаг 7: Извлечь данные из результатов while(rs.next()){ //Поиск по имени столбца int newAge = rs.getInt("age") + 5; rs.updateDouble("age",newAge); rs.updateRow(); } System.out.println("Список результатов, показывающих новые ages..."); printRs(rs); //Вставьте новую запись в таблицу. //Переместитесь, чтобы использовать updateXXX() для вставки строки и добавления данных столбца System.out.println("Вставка новой записи..."); rs.moveToInsertRow(); rs.updateInt("id",104); rs.updateString("first","John"); rs.updateString("last","Paul"); rs.updateInt("age",40); //Подтвердите строку rs.insertRow(); System.out.println("Список результатов, показывающих новый набор..."); printRs(rs); //Удалите第二条 record из таблицы. //Сначала установите положение на第二条record rs.absolute(2); System.out.println("Список записи перед удалением..."); //Поиск по имени столбца int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Отображение значений System.out.print("ID: " + id); System.out.print(", Возраст: " + age); System.out.print(", Первый: " + first); System.out.println(", Последний: " + last); //Удаление строки rs.deleteRow(); System.out.println("Список результатов после ",) удаление одной записи... printRs(rs); //Шаг 8: очистка окружающей среды rs.close(); stmt.close(); conn.close(); } //Обработка JDBC ошибок se.printStackTrace(); } //Обработка ошибки Class.forName finally{ } //Для закрытия ресурсов try{ if(conn!=null) conn.close(); } se.printStackTrace(); } } System.out.println("Goodbye!"); //Конец main public static void printRs(ResultSet rs) throws SQLException{ //Убедитесь, что мы начинаем с первой строки rs.beforeFirst(); while(rs.next()){ //Поиск по имени столбца int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Отображение значений System.out.print("ID: " + id); System.out.print(", Возраст: " + age); System.out.print(", Первый: " + first); System.out.println(", Последний: " + last); } System.out.println(); //Конец printRs() //Конец JDBCExample
Теперь давайте скомпилируем следующий пример:
C:\>javac JDBCExample.java C:\>
во время выполненияJDBCExampleОн произведет следующие результаты:
C:\>java JDBCExample Подключение к базе данных... Создание запроса... Список результатов для ознакомления... ID: 100, Возраст: 33, Имя: Zara, Фамилия: Ali ID: 101, Возраст: 40, Имя: Mahnaz, Фамилия: Fatma ID: 102, Возраст: 50, Имя: Zaid, Фамилия: Khan ID: 103, Возраст: 45, Имя: Sumit, Фамилия: Mittal Список результатов, показывающий новые данные... ID: 100, Возраст: 38, Имя: Zara, Фамилия: Ali ID: 101, Возраст: 45, Имя: Mahnaz, Фамилия: Fatma ID: 102, Возраст: 55, Имя: Zaid, Фамилия: Khan ID: 103, Возраст: 50, Имя: Sumit, Фамилия: Mittal Вставка новой записи... Список результатов, показывающий новые данные... ID: 100, Возраст: 38, Имя: Zara, Фамилия: Ali ID: 101, Возраст: 45, Имя: Mahnaz, Фамилия: Fatma ID: 102, Возраст: 55, Имя: Zaid, Фамилия: Khan ID: 103, Возраст: 50, Имя: Sumit, Фамилия: Mittal ID: 104, Возраст: 40, Имя: John, Фамилия: Paul Список записей до удаления... ID: 101, Возраст: 45, Имя: Mahnaz, Фамилия: Fatma Список результатов после удаления одной записи... ID: 100, Возраст: 38, Имя: Zara, Фамилия: Ali ID: 102, Возраст: 55, Имя: Zaid, Фамилия: Khan ID: 103, Возраст: 50, Имя: Sumit, Фамилия: Mittal ID: 104, Возраст: 40, Имя: John, Фамилия: Paul До свидания! C:\>