06.Hibernate
文章平均质量分 62
千秋大业一壶茶
世间本无事庸人自扰人
展开
-
Hibernate的二级缓存
一、概述 Hibernate包括两个级别的缓存:默认总是启用的Session级别的一级缓存和可选的SessionFactory级别的二级缓存。 其中,Session级别的一级缓存默认总是有效的,当应用保存持久化实体、修改持久化实体时,Session并不会立即把这种改变flush到数据库,而是缓存在当前Session的一级缓存中,除非程序显式调用Session的flush方法原创 2014-01-22 00:51:26 · 730 阅读 · 0 评论 -
Hibernate的查询缓存
一、概述 一级、二级缓存都是对整个实体进行缓存,它不会缓存普通属性,如果想对普通属性进行缓存,则可以使用查询缓存。需要指出的是,在部分情况下查询缓存并不能提高应用属性,甚至反而会降低应用性能,只有经常使用相同的查询语句,并且使用相同的查询参数才能通过查询缓存获得好处,因此实际项目中请慎重使用查询缓存。查询缓存的生命周期直到属性被修改了为止。 查询缓存的key就是查询所用的hql原创 2014-01-25 23:59:09 · 577 阅读 · 0 评论 -
Hibernate的基本使用
1. Hibernate的下载 官方下载地址:http://www.hibernate.org/downloads Hibernate完整版结构如下:documentation(帮助文档,API),lib(核心类库),project(全部源码)2. 导入Hibernate核心类库到项目 基本包包括:antlr-2.7.2.jar,commons-fileupl原创 2013-12-30 23:42:37 · 805 阅读 · 0 评论 -
Hibernate的HQL查询
1. Person.hbm.xml "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">原创 2014-01-13 23:02:30 · 536 阅读 · 0 评论 -
Hibernate的条件查询
//条件查询是更具面向对象特色的数据查询方式package test;import org.hibernate.*;import org.hibernate.criterion.Restrictions;import java.util.*;public class CriteriaTest { public static void main(String[]原创 2014-01-14 00:07:49 · 623 阅读 · 0 评论 -
Hibernate的映射(集合)
1. Hibernate配置文件(src/hibernate.cfg.xml) 在hibernate.cfg.xml中增加 update 方便在测试的时候自动生成数据库表字段。2. Model(src/test/Person.java)public class Person{ private Integer id; private String name;原创 2014-01-02 00:44:53 · 616 阅读 · 0 评论 -
Hibernate的映射(组件)
1. Model(src/test/Person.java) public class Person{ private Integer id; private int age; private Name name;//1. 组件属性name private Map nicks = new HashMap(); //3.集合属性为组件原创 2014-01-02 23:36:59 · 675 阅读 · 0 评论 -
Hibernate的事务控制
1. 事务的特性 事务具备原子性(不可再分)、一致性(一种状态到另一种正确的状态)、隔离性(并发执行的事务之间互不影响)和持久性(提交过后就永久存储)4个属性,简称ACID。2. Session与事务 Hibernate的事务(Transaction对象)通过Session的BeginTransaction()方法显式打开,从底层实现来看,Hibernate事务由Trans原创 2014-01-16 22:46:56 · 838 阅读 · 0 评论 -
Hibernate的映射(关联)
1. 概述 单向N-1关联,比如多个人对应同一个地址,只需从人实体端可以找到对应的地址实体无须关心某个地址的全部住户。 为了让两个持久化类支持这种关联映射,程序应该在N的一端增加一个引用1端的关联实体。同时在配置hbm文件的时候又分为无连接表和有连接表(一般的N-1情况下都无需连接表)。2. modelpublic class Person { private原创 2014-01-07 00:07:06 · 624 阅读 · 0 评论 -
Hibernate的批量处理
1. 批量插入 Hibernate的Session持有一个必选的一级缓存,数据操作的时候都将在Session级别的缓存区进行缓存。如果同时操作的数据量太大,将会抛出OutOfMemoryException异常(内存溢出)。所以,我们可以定时将Session缓存的数据刷入数据库,而不是一直在Session级别缓存。如下:public class PersonManager{原创 2014-01-08 23:32:57 · 537 阅读 · 0 评论 -
Hibernate的原生SQL查询
1. Person和Address实体同前面几篇博客一样,新加一个PersonAddress实体如下:public class PersonAddress { private String personName; private String addressName; .............}2. Person映射文件如下,Address映射文原创 2014-01-14 23:58:57 · 870 阅读 · 0 评论 -
Hibernate的事件机制
一、概述 Hibernate执行持久化过程中,应用程序无法参与其中。但可以通过事件框架,Hibernate允许应用程序响应特定的内部事件,从而实现某些功能或者对Hibernate的某些功能进行扩展。二、Hibernate事件框架1. 拦截器机制 通过Interceptor接口,可以从Session中回调应用程序的特定方法,这种回调机制可让应用程序在持久化对象被保存、更新原创 2014-01-27 00:57:33 · 824 阅读 · 0 评论