
Hibernate实战
文章平均质量分 70
huashuizhuhui
这个作者很懒,什么都没留下…
展开
-
Criteria 查询表达式
Criteria 本身只是一个查询容器,具体的查询条件需要通过 Criteria.add 方法添加到 Criteria 实例中。 如前例所示, Expression 对象具体描述了查询条件。针对 SQL 语法, Expression 提供了对应的查询限定机制,包括: 方法 描述 Expression.eq 对应 SQL “ field = value ”表达式。 ...原创 2011-04-02 21:50:36 · 281 阅读 · 0 评论 -
Hibernate中的对象的状态
Hibernate中的对象有三种状态:瞬时(Transient),持久(Persistent),托管(Detached).同时我们称持久层中的对象为PO(Persistence Object),瞬时对象和托管对象也可称为VO(Value Object).1 对于瞬时状态:由new创建的Java对象。不合Session实例关联,在数据库中没有和瞬时对象关联的记录2 持久化状态:和Sessio...原创 2011-04-02 22:05:37 · 121 阅读 · 0 评论 -
Hibernate中的数据检索策略概述
关键字: hibernate 数据检索策略我们知道,Hiberante是一个ORM工具,它使得我们能够直接去操纵对象而不是数据库中表。Hibernate的数据检索策略也是给予对对象的操作的。数据检索策略主要包括一下几种:立即加载,延迟加载,预先抓取和批量加载。其中前三个是统一级别的,三个当中智能选择其中一个,而批量加载则可以很好的整合前面三个,还有就是预先抓取和批量加载都是为了优化前面两种方式...原创 2011-04-02 22:06:12 · 129 阅读 · 0 评论 -
Hibernate缓存深入详解[贵在深入]
Hibernate缓存深入详解[这是我见到过将缓存讲的最透彻的PPT],感谢作者2011-04-05 11:46:38 · 98 阅读 · 0 评论 -
Hibernate缓存深入详解[贵在深入]
Hibernate缓存深入详解 ,有兴趣可以看看 孙卫琴的hibernate一书,缓存知识讲的很详细2011-04-05 11:46:39 · 79 阅读 · 0 评论 -
Hibernate性能优化1
有很多人认为Hibernate天生效率比较低,确实,在普遍情况下,需要将执行转换为SQL语句的 Hibernate的效率低于直接JDBC存取,然而,在经过比较好的性能优化之后,Hibernate的性能还是让人相当满意的,特别是应用二级缓存之后,甚至可以获得比较不使用缓存的JDBC更好的性能,下面介绍一些通常的Hibernate的优化策略: 1.抓取 优化 抓取是指Hibern...原创 2011-04-05 18:07:18 · 79 阅读 · 0 评论 -
Hibernate性能优化2
本文依照HIBERNATE帮助文档,一些网络书籍及项目经验整理而成,只提供要点和思路,具体做法可以留言探讨,或是找一些更详细更有针对性的资料。 初用HIBERNATE的人也许都遇到过性能问题,实现同一功能,用HIBERNATE与用JDBC性能相差十几倍很正常,如果不及早调整,很可能影响整个项目的进度。 大体上,对于HIBERNATE性能调优的主要考虑点如下: ? 数据...原创 2011-04-05 18:08:04 · 87 阅读 · 0 评论 -
Hibernate性能优化3
一。 inverse = ? inverse=false(default) 用于单向one-to-many关联 parent.getChildren().add(child) // insert child parent.getChildr...原创 2011-04-05 18:08:48 · 74 阅读 · 0 评论 -
Hibernate性能优化5
在处理大数据量时,会有大量的数据缓冲保存在 Session 的一级缓存中,这缓存大太时会严重显示性能,所以在使用 Hibernate 处理大数据量的,可以使用 session.clear() 或者 session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。2) 对大数据量查询时,慎用 list() 或者 iterator() 返回查询结果,1. 使用 ...原创 2011-04-05 18:09:33 · 83 阅读 · 0 评论 -
Hibernate性能优化4
1) 在处理大数据量时,会有大量的数据缓冲保存在Session的一级缓存中,这缓存大太时会严重显示性能,所以在使用Hibernate处理大数据量的,可以使用session.clear()或者session. Evict(Object) 在处理过程中,清除全部的缓存或者清除某个对象。2) 对大数据量查询时,慎用list()或者iterator()返回查询结果,1. 使用List()返回结...原创 2011-04-05 18:10:02 · 82 阅读 · 0 评论 -
什么叫n+1次select查询问题?
什么叫n+1次select查询问题?在Session的缓存中存放的是相互关联的对象图。默认情况下,当Hibernate从数据库中加载Customer对象时,会同时加载所有关联的Order对象。以Customer和Order类为例,假定ORDERS表的CUSTOMER_ID外键允许为null,图1列出了CUSTOMERS表和ORDERS表中的记录。 以下Session的find(...原创 2011-04-05 18:13:20 · 225 阅读 · 0 评论 -
hibernate3.1_ref_chinese(中文版)
hibernate3.1_ref_chinese(中文版)2012-03-08 10:01:48 · 86 阅读 · 0 评论 -
Hibernate中的ThreadLocal类
我们知道,Session是Hibernate运行的核心,通过它来对对象的生命周期,事务的管理和数据库的存取进行管理。首先我们来看一下threadLocal类。我们从上一篇文章已经知道,SessionFactory是线程安全的,不同的线程对它的实例进行调用,不会发生数据共享方面的问题。而 Session是又SessionFactory创建的,它却不是线程安全的,我们不能让session来进行...原创 2011-04-02 22:05:06 · 147 阅读 · 0 评论 -
Hibernate中的Session缓存
Hibernate中又两种缓存:一级缓存和二级缓存。下面我们来看看一级缓存。之前我们已经讨论过,在Session中存放的是各种对对象和数据库操作的结果。一般的对于查询操作,首先查找的是缓存,缓存中没有再去查找数据库,如果有则立即换回。这里就涉及到了脏数据的问题。为了保证数据的正确性,我们一般要在必要的时候对缓存进行清理,清理的过程就是把缓存中的数据和数据库中的数据一致的过程。同时Session...原创 2011-04-02 22:04:44 · 84 阅读 · 0 评论 -
Hibernate中的Session的保存删除和更新
对于持久化类,我们可以使用Hibernate提供的操作对该类进行操作。我们之前讨论过,对于数据的操作,Session起到了很大的作用。下面我们来具体的看一下。1 save()Session的save()方法可以把该对象的某些属性或者全部属性放入到PreparedStatement中,然后执行语句。当然在这里有涉及到了指定Id方面的具体问题。这里要说明的是这个Id和数据库中的Id唯一表示是不...原创 2011-04-02 22:04:21 · 352 阅读 · 0 评论 -
Criteria
最近在项目中使用 Spring 和 Hibernate 进行开发,有感于 Criteria 比较好用,在查询方法设计上可以灵活的根据 Criteria 的特点来方便地进行查询条件的组装。现在对 Hibernate的Criteria 的用法进行总结: Hibernate 设计了 CriteriaSpecification 作为 Criteria 的父接口,下面提供了 Criteri...原创 2011-04-02 21:51:19 · 75 阅读 · 0 评论 -
Hibernate的clear(),flush(),evict()方法详解
1.Clear 方法 无论是Load 还是 Get 都会首先查找缓存(一级缓存) 如果没有,才会去数据库查找,调用Clear() 方法,可以强制清除Session缓存。 例: view plaincopy to clipboardprint?1. public void testClear(){ 2. Session session = Hibe...原创 2011-04-02 21:58:51 · 97 阅读 · 0 评论 -
Hibernate的LockMod
让我们先来看看Hibernate的文档时怎么说的,关于LockMode: LockMode FORCE Similiar to UPGRADE except that, for versioned entities, it results in a forced version increment.LockMode NONE ...原创 2011-04-02 21:59:31 · 92 阅读 · 0 评论 -
hibernate多对多级联删除总结
A. 应用场景: 一个简单的权限系统的例子: 有三张主表: 用户表:t_user 角色表:role 菜单表:menu 有两张关系表: 用户角色关系表:UserRoleMap 角色菜单关系表:RoleMenuMap role表和t_user表,及role表和menu表通过两张关系表进行多对多关联。 目标是:当删除某个角色的时候,级联删除两张...原创 2011-04-02 21:59:57 · 132 阅读 · 0 评论 -
Hibernate二级缓存
很多人对Hibernate二级缓存都不太了解,或者是有错误的认识,本文是一篇介绍Hibernate二级缓存的文章,旨在帮助读者更好的理解Hibernate二级缓存,纠正错误的认识。 很多人对Hibernate二级缓存都不太了解,或者是有错误的认识,我一直想写一篇文章介绍一下Hibernate二级缓存的,今天终于忍不住了。我的经验主要来自Hibernate2.1版本,基...原创 2011-04-02 22:00:30 · 93 阅读 · 0 评论 -
Hibernate配置proxool连接池
Hibernate配置proxool连接池Xml代码 true org.hibernate.dialect.MySQLDialect pool1 ProxoolConf.xml ...原创 2011-04-02 22:01:11 · 168 阅读 · 0 评论 -
Hibernate批量更新与删除实例浅析
在我们的Java项目中,批量更新是指在一个事务中更新大批量数据,批量删除是指在一个事务中删除大批量数据。批量删除虽然在Hibernate里也可以实现,但因Hibernate的实现机制是一个一个删除,在数量大的情况下很影响效率;其实Hibernate提供的JDBC接口,可以方便的进行批量的更新和删除。以下程序直接通过Hibernate API批量更新CUSTOMERS表中年龄大于零的所有记录...原创 2011-04-02 22:01:37 · 133 阅读 · 0 评论 -
Hibernate深入探讨
Hibernate 缓存策略一级缓存: session , hibernate 的自主缓存二级缓存( Ehcache )Read-onlyNonstrict-read-writeRead-write( 关键事务 )Transactional( 事务型缓存 )二级缓存还有 JbossCache 的,它支持事务型缓存,但是 Jboss 的...原创 2011-04-02 22:02:08 · 89 阅读 · 0 评论 -
Hibernate和Jpa中都有持久化上下文
Hibernate和Jpa中都有持久化上下文的概念(Persistence context),持久化上下文其实就是Hibernate和JPA的一级缓存,通过在持久化上下文中存储持久化状态实体的快照,既可以进行脏检测,并且持久化上下文还可以当做持久化实体的缓存。虽然Hibernate作为JPA的超集,Hibernate3.2之后实现了JPA,但是两者对持久化上下文的管理有一定的同,下面比较如下:...原创 2011-04-02 22:02:34 · 131 阅读 · 0 评论 -
Hibernate中的Configuration类
Configuration类用来管理我们的配置文件的信息的,通过它,我们可以通过创建一个configuration实例来管理相应的配置文档,但是通常我们只创建一个configuration实例。下面是一个通用的创建实例的代码Java代码 1. try{ 2. sessionFactory = new Configuration().configure().buil...原创 2011-04-02 22:03:25 · 106 阅读 · 0 评论 -
Hibernate中的Query接口学习
在Hibernate 2.x中,可以用find()方法来执行HQL语句,但是在Hibernate3.x中却用Query接口来取代了find()方法,提供了更加强大的功能。下面简要的看一下它的用法:1 可以使用“?”来设定参数。要严格的顺序2 使用“:”后跟变量来设置参数。没有严格的顺序3 参数绑定4 setEntity()方法把参数和一个持久化类的实例来绑定5 setPar...原创 2011-04-02 22:03:50 · 114 阅读 · 0 评论 -
Hibernate_JPA
Hibernate_JPA2012-03-08 10:03:44 · 85 阅读 · 0 评论