Chinaunix首页 | 论坛 | 博客
  • 博客访问: 102508
  • 博文数量: 51
  • 博客积分: 2510
  • 博客等级: 少校
  • 技术积分: 580
  • 用 户 组: 普通用户
  • 注册时间: 2009-01-05 16:28
文章分类

全部博文(51)

文章存档

2009年(51)

我的朋友

分类:

2009-01-12 08:50:54

 
 
try   {  
              con   =   ConnectionManager.getConnction();  
              con.setAutoCommit(false);//false是什么意思  
     ....  
              pStatement.executeUpdate();  
              con.commit();//commit是什么意思  
              con.setAutoCommit(true);//这里又来个true又是什么意思  
   
          }   catch   (SQLException   sqlE)   {  
              sqlE.printStackTrace();  
              try   {  
                  con.rollback();//是不是当操作失败的时就回滚呀  
   
              }   catch   (Exception   e)   {  
                  e.printStackTrace();  
              }  
          }   finally   {  
              try   {  
                      pStatement.close();  
                    con.close();  
              }   catch   (SQLException   e)   {  
                  e.printStackTrace();  
              }  
   
          }       }   
 
  另外,当用户执行查询操作的时要不要什么事务呀    答:是。
 
 
 
 
con.commit();是自己手动提交事务  
  con.setAutoCommit(true);是让JDBC自动提交事务。  
  con.rollback();是取消提交回滚数据  
   
  如果con.setAutoCommit(true),在对数据库操作后,数据已真实的更新到数据库里,不需要再用commit,此时调用con.rollback()也不起用了  
   
  如果设成false,那就是JDBC不自动提交,需要手动的使用commit或者rollback来进行提交或者回滚数据.  
   
  查询的时候是不需要进行事务控制的,只要在对数据库多个不同数据需要同步处理的时候才需要事务控制.比如银行取款,他必须有一个取款记录和帐户变化记录一起发生,单独发生一个是不行的,这时候就可以设成false,在两个操作都完成以后使用commit来一起提交.如果其中一个出现问题了,那就直接用rollback把两个都进行回滚,以保证数据一直性
阅读(221) | 评论(0) | 转发(0) |
0

上一篇:字节流和字符流

下一篇:关于jdbc事务操作

给主人留下些什么吧!~~