怎么在java中进行事物处理控制?(100分)

  • 主题发起人 主题发起人 chili1979
  • 开始时间 开始时间
C

chili1979

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大虾,请问怎样在java中进行事物处理,我是在Servlet中进行数据库操作,
其中有删除、插入、更新等操作,我想让他们要么全都成功,要么,全都失败,
不知道应该怎么做,各位大虾帮忙啊~~~(最好能有例子源码)
小弟在此多谢了~~~~~~~
 
try{
conn=...(取一个数据库连接);
stmt=conn.createStatement();
conn.setAutoCommit(false);
.
.(要执行SQL语句)
.
conn.commit();
conn.setAutoCommit(true);
stmt.close();
conn.close();
}
catch(SQLException e){
conn.rollback();
conn.setAutoCommit(true);
conn.close();
}
 
是不是在
conn.setAutoCommit(false);
.
.(要执行SQL语句)
.
conn.commit();
之间可以有N多条SQL语句?
比如:我先更新一个表,如果更新成功,再按条件查询另一个表,
以查询的结果再去更新或插入另一个表
大概是这样吧,实际情况还要复杂,可以这么直接写吗?
 
可以~~即使你插入新记录后,再查询取出该记录给下面的sql语句用也可以的
这就是事务了,爽啊。。。呵呵
 
那岂不是,只要加上这两句话之后,中间和正常的JAVA的语句没什么区别了?
 
能够不用java的事务处理就不要用,性能太差,我一般都是用存储过程来解决。
 
to chili1979:
你中间进行的一般都是sql操作吧?
在没有commit之前,所有的操作都不会保存到数据库
一般事务是用于同时进行多个操作,
并且这些操作必须都要一起完成的时候,如果其中有一步出错就rollback
小猪说的对,能用存储过程就用存储过程吧
 
好的,谢谢各位大力帮忙
我打算学学ORACLE的存储过程怎么写,呵呵
 
多人接受答案了。
 
后退
顶部