English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Ниже приведен пример, который используетcommitиrollbackОписание находится в разделе JDBC-уроки.
Этот пример кода написан на основе настроек环境和 базы данных, описанных в предыдущих главах.
Скопируйте и вставьте следующий пример в 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; Statement stmt = null; try{ // шаг 2: зарегистрируйте JDBC драйвер Class.forName("com.mysql.jdbc.Driver"); // шаг 3: установите соединение System.out.println("Подключение к базе данных..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); // шаг 4: установите автоматическую подачу на false. conn.setAutoCommit(false); // шаг 5: выполните запрос для создания выражения // необходимые параметры для примера RS. System.out.println("Создание выражения..."); stmt = conn.createStatement( ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); // шаг 6: вставим одну строку в таблицу "Сотрудники" System.out.println("Вставка одной строки...."); String SQL = "INSERT INTO Employees " + "VALUES (106, 20, 'Rita', 'Tez')"; stmt.executeUpdate(SQL); // шаг 7: добавим еще одну строку в таблицу "Сотрудники" SQL = "INSERT INTO Employees " + "VALUES (107, 22, 'Sita', 'Singh')"; stmt.executeUpdate(SQL); // шаг 8: здесь подаем данные. System.out.println("Подтверждение данных здесь...."); conn.commit(); // шаг 9: сейчас перечислим все доступные записи. String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); System.out.println("List result set for reference...."); printRs(rs); //步骤10:清理环境 rs.close(); stmt.close(); conn.close(); }catch(SQLException se){ //处理JDBC错误 se.printStackTrace(); // 如果有错误,则回滚更改。 System.out.println("Rolling back data here...."); try{ if(conn!=null) conn.rollback(); } se2.printStackTrace(); //结束尝试 } //处理Class.forName的错误 e.printStackTrace(); } //用于关闭资源 try{ if(stmt!=null) stmt.close(); } } try{ if(conn!=null) conn.close(); }catch(SQLException se){ 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: " + age); System.out.print(", First: " + first); System.out.println(", Last: " + last); } System.out.println(); //Конец printRs() //Конец JDBCExample
Теперь давайте скомпилируем приведенный выше пример, как показано ниже:
C:\>javac JDBCExample.java C:\>
Во время выполненияJDBCExampleОно будет производить следующие результаты-
C:\>java JDBCExample Соединение с базой данных... Создание указания... Вставка одной строки... Коммити данных здесь... Список результатов набора данных для справки... ID: 100, Возраст: 18, Имя: Zara, Фамилия: Ali ID: 101, Возраст: 25, Имя: Mahnaz, Фамилия: Fatma ID: 102, Возраст: 30, Имя: Zaid, Фамилия: Khan ID: 103, Возраст: 28, Имя: Sumit, Фамилия: Mittal ID: 106, Возраст: 20, Имя: Rita, Фамилия: Tez ID: 107, Возраст: 22, Имя: Sita, Фамилия: Singh До свидания! C:\>