1 .事务:一个包含多个步骤的业务操作。如果这个业务操作被事务管理,则多个事务要么同时成功,要么同时失败。
2.操作:
(1):开启事务
(2):提交事务
(3):回滚事务
3.使用Connection conn对象来管理事务
*开启事务:conn.setAutoCommit(boolen autoCommit);调用该方法参数为false。即开启事务(在执行sql之前)
*提交事务:conn.commit();(当所有sql都执行完)
*回滚事务:conn.rollback();(在catch中回滚事务)
例如:
public class UsersDao {
//添加用户
public static boolean insert(User user){
Connection conn=null;
//Statement stmt=null;
PreparedStatement preStmt=null;
ResultSet rs=null;
try{
//获取数据库的连接
conn=JDBCUtils.getConnection();
//定义SQL语句
String sql="insert into user(username,password,usertype) values(?,?,?)";
//开启事务
conn.setAutoCommit(false);
//获取Statement对象
preStmt=conn.prepareStatement(sql);
String username=user.getUsername();
String password=user.getPassword();
String usertype=user.getUsertype();
System.out.println("请输入要添加的信息:");
//preStmt.setString(1,id);
preStmt.setString(1,username);
preStmt.setString(2,password);
preStmt.setString(3,usertype);
//发送SQL语句
int num=preStmt.executeUpdate();
//提交事务
if(num>0){
return true;
}
return false;
}catch (Exception e){
try {
conn.rollback();
}catch (Exception ee){
ee.printStackTrace();
}
e.printStackTrace();
}finally {
JDBCUtils.release(rs,preStmt,conn);
}
return false;
}
}