首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2EE开发 >

mybatis怎么支持乐观锁

2013-01-21 
mybatis如何支持乐观锁目前遇到一个问题 需要给用户分配ID ID为类型加类型人数+1 由于有并发的情况发生 因

mybatis如何支持乐观锁
目前遇到一个问题 需要给用户分配ID ID为类型加类型人数+1 由于有并发的情况发生 因此希望通过乐观锁或悲观锁进行管理 问下高手们怎么让Mybatis支持乐观锁
[解决办法]
直接在表里多加个version字段就行了吧  
[解决办法]
更新的时候给版本号字段加上 1,然后 UPDATE 会返回一个更新结果的行数,通过这个行数去判断。

UPDATE 必须这样写:

UPDATE T_USER u
   SET u.address = #address#,
       u.version = u.version + 1
 WHERE u.username = #username#
   AND u.version = #version#


如果更新执行返回的数量是 0 表示产生并发修改了,需要重新获得最新的数据后再进行更新操作。

Hibernate、JPA 等 ORM 框架或者实现,是使用版本号,再判断 UPDATE 后返回的数值,如果这个值小于 1 时则抛出乐观锁并发修改异常。

热点排行