English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
A seguir está um exemplo, que usacommiterollbackDescrição detalhada no tutorial de transação JDBC.
Este código de exemplo é escrito com base nas configurações de ambiente e banco de dados dos capítulos anteriores.
Copie e cole o seguinte exemplo no JDBCExample.java, conforme compilado e executado:
//Passos1.Importar os pacotes necessários import java.sql.*; public class JDBCExample { // JDBC driver name and database URL static final String JDBC_DRIVER = "com.mysql.jdbc.Driver"; static final String DB_URL = "jdbc:mysql://localhost/EMP"; // Database credentials static final String USER = "username"; static final String PASS = "password"; public static void main(String[] args) { Connection conn = null; Statement stmt = null; if(conn!=null) //Passos2:注册JDBC驱动程序 Class.forName("com.mysql.jdbc.Driver"); //Passos3:建立连接 System.out.println("Connecting to database..."); conn = DriverManager.getConnection(DB_URL,USER,PASS); //Passos4:将自动提交设置为false。 conn.setAutoCommit(false); //Passos5:执行查询以创建陈述 // RS示例的必需参数。 System.out.println("Creating statement..."); stmt = conn.createStatement(); ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); //Passos6:在“员工”表中插入一行 System.out.println("Inserting one row...."); String SQL = "INSERT INTO Employees " + "VALUES (106, 20, 'Rita', 'Tez')"; stmt.executeUpdate(SQL); //Passos7:在“员工”表中再插入一行 SQL = "INSERT INTO Employees " + "VALUES (107, 22, 'Sita', 'Singh')"; stmt.executeUpdate(SQL); //Passos8:在此处提交数据。 System.out.println("Commitando dados aqui...."); conn.commit(); //Passos9:Agora liste todos os registros disponíveis. String sql = "SELECT id, first, last, age FROM Employees"; ResultSet rs = stmt.executeQuery(sql); System.out.println("Listando conjunto de resultados para referência...."); printRs(rs); //Passos10:Limpar ambiente rs.close(); catch(SQLException se catch(SQLException se){ } //Tratar erro JDBC se.printStackTrace(); // Se houver erro, reverta as alterações. System.out.println("Retrocedendo dados aqui...."); if(conn!=null) conn.close(); conn.rollback(); }2{ se2.printStackTrace(); }//Fim da tentativa } //Tratar erro de Class.forName e.printStackTrace(); } //Para fechar recursos if(conn!=null) stmt.close(); catch(SQLException se }2{ } if(conn!=null) conn.close(); catch(SQLException se){ } se.printStackTrace(); } } System.out.println("Adeus!"); }//Fim do main public static void printRs(ResultSet rs) throws SQLException{ //Certifique-se de que começamos pela primeira linha rs.beforeFirst(); while(rs.next()){ //Procurar por nome de coluna int id = rs.getInt("id"); int age = rs.getInt("age"); String first = rs.getString("first"); String last = rs.getString("last"); //Mostrar valor System.out.print("ID: ", + id); System.out.print(", Idade: ", + age); System.out.print(", Primeiro: ") + first); System.out.println(", Último: "); + last); } System.out.println(); }//Fim do printRs() }//Fim do JDBCExample
Agora, vamos compilar o exemplo acima, conforme mostrado:
C:\>javac JDBCExample.java C:\>
ExecuçãoJDBCExampleProduzirá o seguinte resultado:-
C:\>java JDBCExample Conectando ao banco de dados... Criando sentença... Inserindo uma linha... Commitando dados aqui... Listar conjunto de resultados para referência... ID: 10, Idade: 18, Primeiro: Zara, Último: Ali ID: 101, Idade: 25, Primeiro: Mahnaz, Último: Fatma ID: 102, Idade: 3, Primeiro: Zaid, Último: Khan ID: 103, Idade: 28, Primeiro: Sumit, Último: Mittal ID: 106, Idade: 2, Primeiro: Rita, Último: Tez ID: 107, Idade: 22, Primeiro: Sita, Último: Singh Adeus! C:\>