データベースのJavaの操作 - JDBC業務で使用されます
要約:この論文は、内部JDBCトランザクションを使用する方法を学びました。
接続のトランザクション制御メソッドを使用します
データベースへのJDBC接続オブジェクトを取得するための手順は、Connectionオブジェクトは、デフォルトで自動的にデータベースに送信されたSQL文を提出した場合。トランザクションで複数のSQLの実行を可能にする、このデフォルトの提出を、オフにするには、JDBCは、トランザクション制御方法を使用することができます提供します。
一般的な方法
自動状態問合せは提出:ブールgetAutoCommit()はSQLExceptionをスローします。
ステータスが自動的に設定提出されます。voidにsetAutoCommit(ブールAutoCommitが)、SQLExceptionをスローします。
セットには、復元ポイント:セーブポイントでsetSavepoint()は、SQLExceptionをスローします。
指定に復元ポイントの名前を設定:セーブポイントでsetSavepoint(文字列名)は、SQLExceptionをスローします。
指定された名前は、復元ポイントを削除します。void releaseSavepoint(セーブポイントセーブポイント)はSQLExceptionをスローします。
提交:無効コミット()はSQLExceptionをスローします。
回滚:無効ロールバック()はSQLExceptionをスローします。
ロールバックは、復元ポイントの名前を指定するには:空のロールバック(セーブポイントセーブポイント)は、SQLExceptionをスローします。
クエリ分離レベル:INT getTransactionIsolation()はSQLExceptionがスロー。
分離レベルの設定:無効setTransactionIsolationを(INTレベル)のSQLExceptionをスローします。
ユースケース
1つの 公共 静的 ボイドメイン(文字列[]引数){ 2 のtry { 3 にClass.forName( "はcom.mysql.jdbc.Driver" )。 4 } キャッチ(ClassNotFoundExceptionが電子){ 5 e.printStackTrace(); 6 } 7 接続CONN = NULL ; 8 のPreparedStatementてpstmt = NULL ; 9 試し{ 10 文字列のURL = "はjdbc:mysqlの://192.168.35.128:3306 /デモ" 。 11 文字列のユーザ=「ルート」。 12 文字列のパスワード= "123456" ; 13 CONN = たDriverManager.getConnection(URL、ユーザ、パスワード)。 14の ブーリアンステータス= conn.getAutoCommit()。 15 のSystem.out.println( "自動コミット=" + ステータス)。 16 conn.setAutoCommit(偽)。 17 てpstmt = conn.prepareStatement( "生徒から削除ここで、ID = 906" )。 18 pstmt.executeUpdate()。 19 のint E = 1/0。// 模拟出现异常 20 てpstmt = conn.prepareStatement( "ID = 907学生から削除" )。 21 pstmt.executeUpdate(); 22である conn.commit(); // 手動提出、省略することができない 23は } キャッチ(例外E){ 24 e.printStackTrace(); 25 試み{ 26である (conn.rollback); // 手動ロールバック、省略することができる、システムは自動的にロールバックします 27 } キャッチ(EXのSQLException){ 28 ; ex.printStackTrace() 29 } 30 } 最後に{ 31は 試して{ 32 ; pstmt.close() 33である } キャッチ(のSQLException E){ 34 e.printStackTrace(); 35 } 36 のtry { 37 はconn.close(); 38 } キャッチ(のSQLException E){ 39 e.printStackTrace(); 40 } 41 } 42 }