专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »Java教程 » jdbc事务:JavaBean中使用JDBC方式进行事务处理 »正文

jdbc事务:JavaBean中使用JDBC方式进行事务处理

来源: 发布时间:星期四, 2009年3月19日 浏览:0次 评论:0
在JavaBean数据库操作中项事务是指由条或多条对数据库更新sql语句所组成个不可分割工作单元只有当事务中所有操作都正常完成了整个事务才能被提交到数据库如果有项操作没有完成就必须撤消整个事务我们通过提交commit或是回滚rollback()来结束事务操作有关事务操作思路方法都位于接口java.sql.Connection中JAVA中文站社区门户8k)_#Q#cQr;w8Y Yf
JAVA中文站社区门户c[g_A|VB{`7RN
   在第次建立和数据库连接时在缺省情况下连接是在自动提交模式下 jdbc api中可以通过AutoCommit(false) 来禁止自动提交事务然后就可以把多条更新数据库sql语句做为个事务在所有操作完成的后commit()来进行整体提交倘若其中项sql操作失败就不会执行commit()思路方法而是产生相应sqlexception此时就可以捕获异常代码块中rollback()思路方法撤消事务下面是个例子;
@})E Eh/I0av
kt/H[ H4v-q  比如:有两张表个记录用户帐户(useraccount)个是系统帐(sysaccount)现在有个用户要向系统寄钱买东西就要此行下面两条语句:
Cr6E|yKd7i0m6SsJAVA中文站社区门户!_2t+c[D`-Aq
String sql1 = "update useraccount monery=monery-1000 where name='username'";
g[T-F{q(K$[WdCString sql2 = "update sysaccount monery=monery+1000 where name='sysname'"; JAVA中文站社区门户KoXfP-w:?v

$H$W;P}%Q P J0xW  但如果第条执行了而第 2条语句执行出错了就会造成不良后果这是就可以用手动提交方式来防止这种事情发生:主要代码
KgU5`8w^
OH[#FX+}6wT_zz0`try{
Q_-_.\j .
{-eI+EDxl r ax .
"XB8o9s6L%XX . JAVA中文站社区门户:p hX$ogI h
 conn=DriverManager.getConnection("..."); //链接数据库 JAVA中文站社区门户FE$Q0x Ph*Y1TY
JAVA中文站社区门户Hvm+Z a5K |F
 conn.AutoCommit(false);//禁止自动提交事务 JAVA中文站社区门户)_,e8l mC
 stmt = conn.Create....JAVA中文站社区门户q ygK'VCPH
 String sql1 = "update useraccount monery=monery-1000 where name='usename'";JAVA中文站社区门户g m tY6S0eh3U+x|
 String sql2 = "update sysaccount monery=monery+1000 where name='sysname'";
/zj QrtI _| stmt=conn.createStatement;
.VU&\7B'ff stmt.executeUpdate(sql1); JAVA中文站社区门户L7eN(Ne)^H$U+|c
 stmt.executeUpdate(sql2); JAVA中文站社区门户 L!Sp%R+\3O)] br8buY-CN
JAVA中文站社区门户U7tP BMaa0ir~
 conn.commit; //统提交JAVA中文站社区门户`CYA&r
JAVA中文站社区门户}*iu E$A~MBWg
 }catch(SQLException e){
4rg:QWp9D,f  conn.rollback; //倘若其中项sql操作失败就不会执行commit()思路方法而是产生相应sqlexception此时就可以捕获 异常代码块中rollback()思路方法撤消事务
w9ySg rNF  e.prStackTrace; JAVA中文站社区门户 H Y y D6z'p:p
 } JAVA中文站社区门户*M w5ueV[
 finally{
4T-v PYd/MRG  (stmt!=null){ JAVA中文站社区门户%p o"?kQh9H9U Hz}
   stmt.close; JAVA中文站社区门户a8C!V0W7ruv:Y3cd
  }
(O)n'g(p.dV:b;r4Y  (conn!=null){
)Pc'q1I+S   stmt.close;
r7_ xEw6m  }
,x1Tf#?eZS }


TAG: JavaBean javabean JDBC jdbc 事务
0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: