【汇智学堂】JAVAWEB学习日志
程序员文章站
2022-06-29 20:04:00
...
今日收获(1):Java事务的处理
定义:如果对数据库进行多次操作,每一次的执行或步骤都是一个事务
JavaBean中使用JDBC方式进行事务处理。
public int add(PrimaryMarks p) throws SQLException {
match m = null;
int num=0;
int numa=0;
int intmarks=intsum();
try {
conn.setAutoCommit(false);
executeUpdate("INSERT into tb_marks(fullname,grade,marks,lastmarks,nextmarks,appraise)values(?,?,?,?,?,?)");
executeUpdate("INSERT into tb_primarymarks(fullname,grade,chinese,english,science)values(?,?,?,?,?,?)");
num= (int) executeUpdate(p.getFullname(),p.getGrade(),p.getChinese(),p.getMaths(),p.getEnglish(),p.getScience());
numa=(int) executeUpdate(m.getFullname(),m.getGrade(),m.getMarks(),m.getLastmarks(),m.getNextmarks(),m.getAppraise());
conn.commit();
conn.setAutoCommit(true);
closeAll();
return 1;}
catch (Exception e){
conn.rollback();
e.printStackTrace();
closeAll();
return -1;
}
上述代码中,两条语句必须全部处理正确,否则会回滚。
注意事项:
在Java中使用事务处理,首先要求数据库支持事务。如使用MySQL的事务功能,就要求MySQL的表类型为Innodb才支持事务。否则,在Java程序中做了commit或rollback,但在数据库中根本不能生效。
查看MySQL数据库使用事务,相关数据表必须为InnoDB引擎
查看数据表状态:
SHOW TABLE STATUS FROM test WHERE NAME=‘register’
其中test为数据库,register为表名
修改数据表类型为InnoDB。
上一篇: 【汇智学堂】JAVAWEB学习日志