`
pjg82pjg
  • 浏览: 17564 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

事务级别

 
阅读更多

事务级别
2011年06月01日
   事务隔离级别: 
  a:脏读取:一个事务读取了另外一个并行事务未提交的数据 
  b:不可重复读取:一个事务再次读取之前的 数据时得到的数据不一致,被另外一个事务修改 
  c:虚读:一个事务重新执行一个查询,返回的记录包含了其他事务提交的新记录 
  jdbc支持四种(默认 防止脏读) 
  con.setTransactionIsolation(Connection.TRANSACTION _READ_UNCOMMITTED);//最底级别:只保证不会读到非法数据,上述3个问题有可能发生 
  con.setTransactionIsolation(Connection.TRANSACTION _READ_COMMITTED); //默认级别:可以防止脏读 
  con.setTransactionIsolation(Connection.TRANSACTION _REPEATABLE_READ);//可以防止脏读和不可重复读取 
  con.setTransactionIsolation(Connection.TRANSACTION _SERIALIZABLE); //最高级别:防止上述3种情况,事务串行执行 
  Hiberate 
  根据数据库默认级别而默认,mysql默认为repeatable_read,但mysql做了些特殊处理,也可以防止虚读. 
  问题: 
  我在spring里写了一个声明的事务,在这个事务里,重复查询一一条数据,但在中间向别一个事务请求(这个事务向数据库里插入了数据),我想查询插入的数据,但怎么也查询不到. 
  解决方案:1在查询的时候使用jdbc去查询就是了 
  2,设置事务隔离级别, 
  
  
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics