
Hibernate
ch_space
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
HIberbnate学习笔记1--概述
1、ORM的优缺点 优点:提高开发效率,降低开发难度。缺点:系统层次增加,性能有一定损失。 2、HIbernate的5个核心接口: [color=blue]Configuration[/color]--负责初始化时加载配置信息(hibernate.cfg.xml)并据此加载映射文件,最后创建SessionFactory对象。将读入的配置信息设置到SessionFactory对象的缓存中。...原创 2009-05-04 20:40:53 · 177 阅读 · 0 评论 -
hibernate学习笔记12---简化
原帖地址:http://www.iteye.com/topic/402959?page=5 fireflyc 写道 嘿嘿,这个帖子挺热。似乎javaeye上的这种帖子都很热。。。。。都要成框架生产基地了。每天都有伟大的东西诞生,不知道是喜还是忧。看了一下楼主的想法,无非是根据tableName和类的属性生成SQL语句。这种做的原因无非是觉得hibernate是如何如何的差。其实事情没有那...原创 2009-06-07 12:41:22 · 95 阅读 · 0 评论 -
Hibenate关联策略探讨
[size=medium]以下涉及的几个问题是在实际开发中经常或碰到的,大家也渐渐形成了所谓的“最佳实践”,不过还存在一些问题,没有好的方案,请大家一起探讨。 1、是否延迟加载 为了保持较好的性能,通常我们会选择延迟加载关联对象,这一点在one-to-many、many-to-one中体现最深。然而在下列情形中我们可能需要立刻加载关联的对象: 有一个Topic表,一个Comment表...2009-12-04 09:41:37 · 160 阅读 · 0 评论 -
Hibernate集合过滤、子查询
来自:[url]http://blog.youkuaiyun.com/javacoffe/archive/2007/08/09/1733579.aspx[/url] 1、集合过滤: 对于一个已经加载的Customer对象,假设对它的orders集合采用延迟加载机制,那么当调用customer.getOrders().iterator()时,Hibernate就会初始化orders集合,然后到数据...原创 2009-12-01 21:50:41 · 209 阅读 · 0 评论 -
hibernate学习笔记10---集合映射
1、set 前面已经介绍了set的使用,这里只是介绍一下其中的element元素: 如果一对多中多方的表字段很少,可以不必单独建立映射文件,使用element更加方便 如:Company--Dept dept表只有公司id:compid,部门名称:name 那么使用上述方法更简洁: [code="java"] [/code] 在Company.java中...原创 2009-05-19 16:10:27 · 101 阅读 · 0 评论 -
hibernate学习笔记11---检索策略
1、一对多 一般使用延迟加载关联对象,即lazy=true(默认) 如果立即加载(lazy=true),关联的对象较多时可以在set上配置batch-size,以减少select语句的次数(即生成了...in(xx,xx...)语句)。batch-size一般设置为30-50比较合适。 2、多对一 很多情况下多对一都会使用立即检索,即显式配置lazy=false,此时可以在1方的class...原创 2009-05-19 14:32:38 · 153 阅读 · 0 评论 -
hibernate学习笔记9---映射
1、one-to-many [code="java"] [/code] 2、many-to-one [code="java"] [/code] 3、one-to-one a)主键关联: card表用uid作为主键,同时也是外键 [code="java"] Users.hbm.xml: Card.hbm.xml: ...2009-05-18 21:51:33 · 90 阅读 · 0 评论 -
hibernate学习笔记8---one-to-one
[quote] http://www.iteye.com/topic/82946 关于one-to-one关联的从方不能lazy loading是由one-to-one的机制造成的,比如user和contact是一对一,user是主,contact是从,约束依赖于user,那么在数据库中,contact表中应该有一个外键字段指向user表的主键。 当加载contact对象时,从co...原创 2009-05-18 21:03:01 · 158 阅读 · 0 评论 -
hibernate学习笔记7--只加载部分属性
通过另外设置一个合适的构造函数即可。 比如只加载User的username、password,那么这样添加一个构造函数到User.java: [code="java"] public User(String username,String password){ this.username=username; this.password=password; } [/code] ...原创 2009-05-12 21:05:12 · 110 阅读 · 0 评论 -
hibernate学习笔记6--原生SQL、Query的list和iterator
1、原生SQL,为复杂查询提供帮助 [code="java"] getUser(){ SQLquery q=session.createSQLQuery("select {u.*} from users u where username='"+username+"'",u); q.addEntity("u",Users.class);//u是表的别名 return (Us...原创 2009-05-12 20:37:05 · 141 阅读 · 0 评论 -
hibernate学习笔记5--session.flush()
我们知道hibernate默认情况下对CRUD的执行是按照save、update、delete的顺序,为什么是这样呢? 因为在调用session.save()时,hibernate同时执行了session.flush(),这个方法是清理(注意不是清空!)hibernate缓存,同时发送SQL语句到数据库(但并没有更新数据库,直到commit()后才更新)。 代码: [code="java"]...2009-05-12 18:31:50 · 141 阅读 · 0 评论 -
hibernate学习笔记3--事务管理
最近在学习hibernate时对dao设计模式产生一些疑惑,总结出以下事务管理方案: 1、只涉及到简单的业务流程(每个业务只涉及一个dao操作) 此时不需要service层,只要dao就够了。 例子: [code="java"] public void insertUser(Users user) { Session session=SessionFactory.openSessio...原创 2009-05-06 22:59:07 · 163 阅读 · 0 评论 -
HIberbnate学习笔记4--动态查询Criteria接口
Criteria接口天生就是为动态查询而设计的,当然Query接口也可以实现,但比较繁杂。 简单例子: [code="java"] public List getUserByCond(Map cond) { Session session=SessionFactory.getSession(); Criteria ct=session.createCriteria(User....2009-05-05 21:12:54 · 120 阅读 · 0 评论 -
HIberbnate学习笔记2--对象生命周期转换
1、瞬态(Transient) 不在session缓存,不与session实例关联,数据库中没有与之对应的记录。 delete()过的对象(必须是持久化对象)将删除数据库中对应的记录,并从session缓存清除。 进入瞬态:new出来的对象,delete()。 2、持久化态(Persistent) 在session缓存,与session实例关联,数据库中有对应记录,Session在清...原创 2009-05-04 21:01:43 · 105 阅读 · 0 评论 -
HIberbnate参数配置备忘
Hibernate3的配置参数汇总. http://www.blogjava.net/wiflish/archive/2007/04/12/110152.html SQL方言 1、Hibernate JDBC属性 属性名 用途 hibernate.connection.driver_class jdbc驱动类 hibernate.connection....原创 2009-06-19 18:07:10 · 153 阅读 · 0 评论