- 浏览: 1505616 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (798)
- struts2 (42)
- servlet (20)
- quartz (4)
- jquery & ajax (24)
- tomcat (5)
- javascript (15)
- struts1 (8)
- 搜索关键字及链接 (3)
- fckeditor (3)
- Apache (5)
- spring (22)
- linux (3)
- 企业应用 (8)
- 综合应用 (13)
- 服务器 (2)
- 数据库 (85)
- 性能调优 (21)
- 网络应用 (15)
- 缓存技术 (8)
- 设计模式 (39)
- 面试题 (7)
- 程序人生&前辈程序员 (29)
- java基础 (59)
- hibernate (75)
- log4j (4)
- http (11)
- 架构设计 (28)
- 网页设计 (12)
- java邮件 (4)
- 相关工具 (11)
- ognl (7)
- 工作笔记 (18)
- 知识面扩展 (12)
- oracle异常 (1)
- 正则表达式 (2)
- java异常 (5)
- 项目实践&管理 (1)
- 专业术语 (11)
- 网站参考 (1)
- 论坛话题 (2)
- web应用 (11)
- cxf&webservice (22)
- freemarker (3)
- 开源项目 (9)
- eos (1)
- ibatis (6)
- 自定义标签 (3)
- jsp (3)
- 内部非公开文档(注意:保存为草稿) (0)
- 国内外知名企业 (2)
- 网店 (3)
- 分页 (1)
- 消费者习惯 (2)
- 每日关注 (1)
- 商业信息 (18)
- 关注商业网站 (1)
- 生活常识 (3)
- 新闻 (2)
- xml&JSON (5)
- solaris (1)
- apache.common (3)
- BLOB/CLOB (1)
- lucene (2)
- JMS (14)
- 社会进程 (8)
- SSH扩展 (2)
- 消费心理 (1)
- 珠三角 (1)
- 设计文档 (1)
- XWork&webwork (1)
- 软件工程 (3)
- 数据库及链接 (1)
- RMI (2)
- 国内外知名企业&人物 (1)
最新评论
-
司c马:
简介易懂、
OutputStream和InputStream的区别 -
在世界的中心呼喚愛:
解决我的问题
Java获取客户端的真实IP地址 -
bo_hai:
都是些基本的概念呀!
SSO -
tian_4238:
哥们,你也是搞水利这块的吧。
巧用SQLQuery中的addScalar -
loveEVERYday:
java.util.Date、java.sql.Date、java.sql.Time、java.sql.Timestamp小结
悲观锁
悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改
===
Inventory inv = (Inventory)session.load(Inventory.class, 1, LockMode.UPGRADE);
System.out.println("itemName=" + inv.getItemName());
System.out.println("quantity=" + inv.getQuantity());
inv.setQuantity(inv.getQuantity() - 200);
session.update(inv);
---
Inventory inv = (Inventory)session.load(Inventory.class, 1, LockMode.UPGRADE);
System.out.println("itemName=" + inv.getItemName());
System.out.println("quantity=" + inv.getQuantity());
inv.setQuantity(inv.getQuantity() - 200);
session.update(inv);
===
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Inventory" table="t_inventory">
<id name="itemNo">
<generator class="native"/>
</id>
<property name="itemName"/>
<property name="quantity"/>
</class>
</hibernate-mapping>
===
Inventory inv = new Inventory();
inv.setItemNo(1001);
inv.setItemName("脑白金");
inv.setQuantity(1000);
session.save(inv);
===
public class Inventory {
private int itemNo;
private String itemName;
private int quantity;
悲观锁的实现,通常依赖于数据库机制,在整个过程中将数据锁定,其它任何用户都不能读取或修改
===
Inventory inv = (Inventory)session.load(Inventory.class, 1, LockMode.UPGRADE);
System.out.println("itemName=" + inv.getItemName());
System.out.println("quantity=" + inv.getQuantity());
inv.setQuantity(inv.getQuantity() - 200);
session.update(inv);
---
Inventory inv = (Inventory)session.load(Inventory.class, 1, LockMode.UPGRADE);
System.out.println("itemName=" + inv.getItemName());
System.out.println("quantity=" + inv.getQuantity());
inv.setQuantity(inv.getQuantity() - 200);
session.update(inv);
===
<hibernate-mapping>
<class name="com.bjsxt.hibernate.Inventory" table="t_inventory">
<id name="itemNo">
<generator class="native"/>
</id>
<property name="itemName"/>
<property name="quantity"/>
</class>
</hibernate-mapping>
===
Inventory inv = new Inventory();
inv.setItemNo(1001);
inv.setItemName("脑白金");
inv.setQuantity(1000);
session.save(inv);
===
public class Inventory {
private int itemNo;
private String itemName;
private int quantity;
发表评论
-
自定义用户类(UserType)的使用
2011-08-04 10:46 1872学习hibernate有段时间了,最近复习这门技术时看到了自定 ... -
技巧:利于ThreadLocal模式管理Session
2011-08-02 10:31 1268在利用Hibernate开发DAO模块时,我们和Session ... -
Hibernate中的回调与拦截机制
2011-07-27 17:31 1463在某些情况下,我们需要对实体的CURD操作进行捕获并执行一些操 ... -
HibernateTemplate中HibernateCallback的事务
2011-07-04 14:41 1450目的:使用HibernateTemplate执行execute ... -
Hibernate的复杂用法HibernateCallback
2011-07-04 14:40 1342HibernateTemplate还提供一种更加灵活的方式来操 ... -
Hibernate session FlushMode有五种属性
2011-07-04 13:59 17331、NEVER:已经废弃了,被MANUAL取代了2 MANUA ... -
数据库持久层——浅谈hibernate中的Session
2011-07-01 22:49 1670大多数情况下,Session 管理的目标聚焦于通过合理的设 ... -
详解Hibernate Session
2011-07-01 22:42 1498这里介绍Hibernate Session,Ses ... -
HttpSession与Hibernate中Session的区别
2011-07-01 22:41 1296一、javax.servlet.http.HttpSess ... -
巧用SQLQuery中的addScalar
2011-06-02 17:16 5749当我们用HQL进行子查询的时候,如select * from ... -
hibernate中SQLQuery的addEntity();方法
2011-04-13 14:48 2895如果使用原生sql语句进行query查询时,hibernate ... -
Hibernate的clear(),flush(),evict()方法详解
2011-03-24 11:18 17741.Clear 方法 无论是Load 还是 G ... -
hibernate模糊查询-Restrictions.ilike & Expression.like
2011-03-11 10:32 16362Criteria criteria = session.c ... -
Hibernate分页查询小结
2011-03-10 11:14 1831通常使用的Hibernate通常是三种:hql查询,QBC查询 ... -
current_session_context_class
2011-03-07 15:31 1297此设置的作用如下: What does sessionFac ... -
Hibernate的拦截器和监听器
2010-12-14 15:06 1388核心提示:最近项目需要,用到了Hibernate的拦截器和 ... -
孙卫琴.精通Hibernate:Java对象持久化技术详解_触发器使缓存与数据库不一致
2010-12-14 08:46 1395p198 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_优化报表查询的性能
2010-12-13 17:51 1275p332 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_查询结果类型
2010-12-13 17:34 1307p329 -
孙卫琴.精通Hibernate:Java对象持久化技术详解_投影查询
2010-12-13 17:31 1426p325
相关推荐
10. **版本控制(Optimistic Locking / Pessimistic Locking)**:Hibernate提供了乐观锁和悲观锁机制,防止并发访问时的数据冲突。 11. **映射文件(Mapping Files)**:通常使用XML文件(如.hbm.xml)来定义对象-...
_three-point estimating_是指根据项目中每个任务的optimistic、most likely和pessimistic三个估算值,估算总成本。 在IT项目中,成本估算的重要性不言而喻。好的成本估算可以帮助项目经理和项目团队更好地进行资源...
一、悲观锁(Pessimistic Locking) 悲观锁是一种预防并发访问的机制,Hibernate 通过对数据库的锁定来实现。悲观锁假定任何时刻存取数据时,都可能有另一个客户也正在存取同一笔数据,因此对数据采取了数据库层次...
- **悲观锁(Pessimistic Locking)**:默认情况下Hibernate使用悲观锁机制,它假设数据会被修改,因此在事务开始时就锁定数据。 - **乐观锁(Optimistic Locking)**:与悲观锁相反,它假设数据不会被修改,因此在提交...
4. 对于悲观锁(Pessimistic Locking)和乐观锁(Optimistic Locking),需结合具体业务场景选择合适的锁策略,避免并发问题。 5. 使用缓存可能导致内存占用增加,注意监控和管理内存资源。 总之,正确配置和使用...
- **悲观锁 (Pessimistic Locking)**: 在整个事务期间锁定资源,以防止其他事务同时修改同一资源。 - **乐观锁 (Optimistic Locking)**: 通过版本号机制来检测并解决并发修改问题。 - **Hibernate分页**: 提供了对...
- **悲观锁(Pessimistic Locking)**: 在操作数据前先锁定资源。 - **乐观锁(Optimistic Locking)**: 基于版本号或时间戳机制实现。 #### 十五、Hibernate分页 - 实现分页查询,提高大数据量下的查询效率。 #### ...
11.4. 悲观锁定(Pessimistic Locking) 11.5. 连接释放模式(Connection Release Modes) 12. 拦截器与事件(Interceptors and events) 12.1. 拦截器(Interceptors) 12.2. 事件系统(Event system) 12.3. Hibernate...
主要分为两种类型:乐观锁(Optimistic Locking)和悲观锁(Pessimistic Locking)。 **悲观锁(Pessimistic Locking)** 悲观锁假设数据在任何时候都可能发生并发冲突,因此在数据读取时就对其进行锁定,确保在...
在Hibernate中,可以通过`@LockModeType.PESSIMISTIC_WRITE`或`@LockModeType.PESSIMISTIC_READ`注解来实现悲观锁。例如,s2sh_relation25_pessimistic_Lock.zip中的源码可能包含了如何在Service层或DAO层使用悲观锁...
- **悲观锁** (Pessimistic Locking): 在操作数据前先加锁,确保数据的一致性。 - **乐观锁** (Optimistic Locking): 通过版本号等方式检测数据是否被其他事务修改,从而决定是否执行更新操作。 #### 十一、...
在《hibernate_3200_Concurrency_Pessimistic_Lock》这个压缩包中,很可能包含了关于Hibernate框架如何实现悲观锁和乐观锁的详细资料,包括源代码示例、配置方法和使用场景。通过学习这些资料,你可以深入了解这两种...
2. **悲观锁(Pessimistic Locking)**:假设数据冲突很常见,因此在数据读取时即锁定数据,直至事务完成。Hibernate 支持行级悲观锁,通过 SQL 的 `SELECT FOR UPDATE` 实现。 #### 四、Session与事务 **Hibernate ...
11.4. 悲观锁定(Pessimistic Locking) 11.5. 连接释放模式(Connection Release Modes) 12. 拦截器与事件(Interceptors and events) 12.1. 拦截器(Interceptors) 12.2. 事件系统(Event system) 12.3. Hibernate...
市场中有N个交易主体(Agent)对同一支股票进行交易,根据采用的市场策略将市场交易者分成三类:基础分析交易者,乐观主义交易者和悲观主义交易者。 市场环境的变化会引起交易主体行为模式的转变。...
11.4. 悲观锁定(Pessimistic Locking) 11.5. 连接释放模式(Connection Release Modes) 12. 拦截器与事件(Interceptors and events) 12.1. 拦截器(Interceptors) 12.2. 事件系统(Event system) 12.3. Hibernate...
14. **版本控制(Optimistic Locking/Pessimistic Locking)**:Hibernate提供乐观锁和悲观锁来防止并发访问时的数据冲突。 15. **事件监听器**:可以通过实现特定接口或使用注解来监听持久化过程中的各种事件,如...