用jdbc来做事务控制时:1:select查询操作算不算一个事务?
2:conn.setAutoCommit(true);这步是不是一定要做?
3:rollBack()后,程序的流程?下一步会执行什么语句?

解决方案 »

  1.   

    1.完整的事务过程应该是从开启事务到提交/回滚事务结束,楼主的意思是查询不会对数据库造成改动,所以想知道查询是否需要封装成事务是吧,我觉得是看情况选择
    2.应该设置conn.setAutoCommit(false);否则仍为自动提交
    3.rollback后数据库会去查操作记录,恢复事务中已修改的数据,并再次记录日志。
      

  2.   

    1.因为查询不会对数据库造成影响,所以不必封装到事务
    2.在获取conn后设置conn.setAutoCommit(false)
      执行完事务后conn.setAutoCommit(true)
    3.这个问题没必要研究
      

  3.   

    用jdbc来做事务控制时: 1:select查询操作算不算一个事务? 
    从数据库角度来看,select也算一个事务,但在实际编程中,是不会控制查询事务的
    2:conn.setAutoCommit(true);这步是不是一定要做? 
    conn.setAutoCommit(false);  在事务执行完后要提交才可以。注意不同数据库在使用conn.setAutoCommit(false)时要慎重,可能会有异常的效果。
    3:rollBack()后,程序的流程?下一步会执行什么语句?
    rollBack后当然是把事务回滚了,就相当于没有做过数据库更新,下一步该是报错处理了,呵呵
      

  4.   

    1、select操作只是简单的对数据库进行读操作,所以我觉得没有必要加事务。删除和更改才需要事务。2、需要自己控制时才设置conn.setAutoCommit(false).一般的开发都是自己控制。3、回滚后,你程序怎么写,该干吗干吗去……因为rollBack()一般出现在catch里,所以一般都是在rollBack()后再一次进行删除或更改操作.