随笔分类 -  Hibernate

摘要:今天终于把MyEclipse生成多对多映射文件和POJO的问题搞清楚了!首先和一般的生成Hibernate一样,先建数据库表,然后在DBBrowers里通过一张表生成映射!如图所示,下图中,选择Enable many to many detection 复选框(在MyEclipse5.5以上才有这个选项),点下一步!如图所示这时把两个Include reference tables都选择上,这个复选框的意思是把与这个表相关表都生成出来。但比如多对多映射中的中间表则不会生成实体类!十分重要:数据表取名时一定要特别注意,不要用些非法字符!在做多对多映射时,就因为把中间表的名字写成了"us 阅读全文
posted @ 2013-12-01 15:33 孙立庆 阅读(478) 评论(0) 推荐(0)
摘要:前言:在hibernate中,除了满足最基本的数据库访问操作之外,还为我们程序员提供了很多用于提升访问效率的手段。1) 缓存: 以空间(内存)换时间.2) 延迟加载策略: 延缓数据库查询时机,减少无谓sql语句的生成.1.什么是延迟加载: 所谓延迟加载就是当在真正需要数据的时候,才真正执行数据加载操作。在Hibernate中提供了对实体对象的延迟加载、集合的延迟加载、属性的延迟加载(hibernate3之后提供的)。A、实体对象的延迟加载:如果想对实体对象使用延迟加载,必须要在实体的映射配置文件中进行相应的配置,如下所示: ……通过将class的lazy属性设置为true,来开启实... 阅读全文
posted @ 2013-11-28 16:23 孙立庆 阅读(166) 评论(0) 推荐(0)
摘要:1.Hibernate中find和iterate的区别?find方法和iterator方法的区别(1) iterator首先会获取符合条件的记录的id,再跟据id在本地缓存中查找数据,查找不到的再在数据库中查找,结果再存在缓存中。N+1条SQL语句。(2) find根据生成的SQL语句,直接访问数据库,查到的数据存在缓存中,一条SQL语句。2. 为什么要用Hibernate框架,它有什么优势?答:至于我们为什么要用Hibernate,就从Hibernate的四个优点来说:首先、Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码。其次、Hibernate是 阅读全文
posted @ 2013-11-27 20:46 孙立庆 阅读(263) 评论(0) 推荐(0)
摘要:一级缓存Hibernate的一级缓存是由Session提供的,因此它只存在于Session的生命周期中,当程序调用get(),save(),update(),saveorupdate()等方法如session缓存中还不存在相应的对象,Hibernate会把该对象加入到一级缓存中,--Hibernate一级缓存缓存的是对象,注意查询接口Query下的list(),filter(),iterate()时,一级缓存是不起效果的。 1 package com.oracle.dao; 2 3 import java.util.List; 4 5 import org.hibernate.Query;.. 阅读全文
posted @ 2013-11-27 18:25 孙立庆 阅读(404) 评论(0) 推荐(0)
摘要: 阅读全文
posted @ 2013-11-27 11:31 孙立庆 阅读(250) 评论(0) 推荐(0)
摘要:1)persist()方法和save()方法persist()方法是在Hibernate3版本中才出现的,实现了EJB3规范中定义的持久化语义,persist()方法不保证立即为持久化对象的OID赋值,而是有可能在Session清理缓存时才为OID赋值。session.save()方法并不立即执行SQL insert语句,只有当Session清理缓存时,才会执行SQL语句,如果在save()方法后,又修改了持久化对象的属性,清理缓存时会额外执行SQL update语句。(2)load()和get()方法都能根据给定OID从数据库中加载一个持久化对象.当数据库中不存在与OID对应的记录时,loa 阅读全文
posted @ 2013-11-27 10:14 孙立庆 阅读(1148) 评论(0) 推荐(1)