|
1鱼币
我都找不到相应的版块提问。。。。。
import java.sql.*;
public class TestTransaction {
/**
* @param args
*/
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
PreparedStatement pstmt = null;
try {
Class.forName("org.gjt.mm.mysql.Driver");
conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test_1","root","123456");
conn.setAutoCommit(false); //设置是否自动提交——否
stmt = conn.createStatement();
stmt.addBatch("insert into dt values(4,'qq','N','12')");
stmt.addBatch("insert into dt values(5,'qq','N','132')");
//如果这个地方报SQLException ,也就是说下面的conn.commit(); 没有执行那回滚操作是否是多余的呢
stmt.addBatch("insert into dt values(6,'QQ','N','14')");
stmt.executeBatch();
conn.commit();
conn.setAutoCommit(true);
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e){
try {
conn.rollback(); //这个地方的回滚操作是不是多余的啊
conn.setAutoCommit(true);
} catch (SQLException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
e.printStackTrace();
} finally {
try {
if(stmt != null)stmt.close();
if(pstmt != null)pstmt.close();
if(conn != null)conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
|
|