|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
微软什么都提供了。你可以试想一下,如果你是新手,你是希望你点一下按钮程序就能运行那,还是想自己一点一点的组织结构,然后打包发部,调错再打包......
1.失望锁定:
在多个客户端大概读取统一笔数据或同时更新一笔数据的情形下,必需要有会见把持的手腕,避免统一个数据被修正而形成凌乱,最复杂的手腕就是对材料举行锁定,在本人举行材料读取或更新等举措时,锁定其他客户端不克不及对统一笔材料举行任何的举措。
失望锁定(PessimisticLocking)一如其称号所示,失望的认定每次材料存取时,别的的客户端也会存取统一笔材料,因而对该笔材料举行锁定,直到本人操纵完成後排除锁定。
失望锁定一般透过体系或材料库自己的功效来完成,依附体系或材料库自己供应的锁定机制,Hibernate便是云云,能够使用Query或Criteria的setLockMode()办法来设定要锁定的表或列(Row)及其锁定形式,可设定的锁定形式有以下的几个:
LockMode.UPGRADE:使用材料库的forupdate子句举行锁定。
LockMode.UPGRADE_NOWAIT:利用forupdatenowait子句举行锁定,在Oracle材料库中利用。
一个设定锁定的例子以下:
Sessionsession=sessionFactory.openSession();
Queryquery=session.createQuery("fromUseruser");
query.setLockMode("user",LockMode.UPGRADE);
Listusers=query.list();
...
session.close();这个程式片断会利用以下的SQL举行查询:
Hibernate:selectuser0_.idasid,user0_.nameasname0_,user0_.ageasage0_
fromuseruser0_forupdate也能够在利用Session的load()或是lock()时指定锁定形式以举行锁定。
别的另有三种加锁形式Hibernate外部主动对材料举行锁定,与材料库有关:
LockMode.WRITE:在insert或update时举行锁定,Hibernate会在save()办法时主动取得锁定。
LockMode.READ:在读取纪录时Hibernate会主动取得锁定。
LockMode.NONE:没有锁定。
假如材料库不增援所指定的锁定形式,Hibernate会选择一个符合的锁定交换,而不是丢出一个破例。
<p>
你精通任何一门语言就最强大。现在来看,java的市场比C#大,C#容易入手,比较简单,java比较难 |
|