JDBC如何处理事务和隔离级别
事务和JDBC相关内容不再做介绍,可以去本人博客中看看:
这里主要说一下在JDBC编程中如何处理事务?
和MySQL一样,JDBC默认不开启事务,每执行一个SQL便提交一次,在MySQL中我们需要set autocommit=0来开启事务功能,然后用begin开始一个事务,用savepoint point1设置名为point1的保存点,用rollback来回滚,用commit来提交。而在JDBC中,我们需要调用connection对象的一些方法:
- connection.setAutoCommit(false);开启事务功能
- connection.commit();提交一个事务
我们先来看看上面两个方法的使用:
import java.sql.*;
public class TranDemo {
public static void select(Connection connection,String sql1) throws SQLException {
PreparedStatement ps= null;
try {
ps = connection.prepareStatement(sql1);//预编译sql1
ps.setString(1,"08");
ResultSet resultSet = ps.executeQuery();
while (resultSet.next()){
System.out.println("SID="+resultSet.getString(1)+
" Sname="+resultSet.getString(2));
}//我这里为了方便只打印SID和Sname
} catch (SQLException e) {
e.printStackTrace();
}finally {
if(ps!=null){
ps.close();//ps是这个方法的局部变量,方法结束需要关闭ps
ps=null;//防止内存泄露
}
}
}
public static void delete(Connection connection,String sql3){