一.映射Set(集):未排序,无重复. 实例代码: <set name="images" table="IMAGES" lazy="true" > <key column="CUSTOMER_ID" /> <element column="FILENAME" type="string" not-null="true"/> </…
一般Session的缓存被称为Hibernate的第一级缓存,SessionFactory的外置缓存是一个可配置的缓存插件,称为Hibernate的第二级缓存.一.缓存的基本原理: 1.持久化层的缓存的范围: A.事务范围:缓存只被当前事务访问. B.进程范围:缓存被进程内的所有事务共享.需要采取必要的隔离机制.缓存介质可以使内存或硬盘. C.集群范围:缓存被同一个机器或多个机器上的多个进程共享.缓存中的数据被复制到集群环境中的每一个进程节点,进程之间通过远程通信来保证缓存中的数据一致性,缓存中…
Hibernate采用映射类型作为Java类型和SQL类型的桥梁,对应type属性.分为两种:内置映射类型和客户化映射类型.一.内置映射类型: 1.Java基本类型的Hibernate映射类型: Java基础类型的Hibernate映射类型 Hibernate映射类型 Java类型 标准SQL类型 大小和取值范围 integer或者int int或者java.lang.Integer INTEGER   long long BIGINT   short short SMALLINT   byte…
一.使用组成关系的原则: 在不导致数据冗余的前提下,尽可能减少数据库表的数目及表之间的外键参照关系,因为建立多个表的连接是很耗时的操作. 举例说明:Customer类中的Address属性,可以通过组件的方式来映射,避免了额外建立一张ADDRESS表,还能达到对象化操作的目的. 配置文件: <component name="homeAddress" class="mypack.Address"> <parent name="custome…
一.Hibernate缓存简介: Session接口是Hibernate向应用程序提供的操纵数据接口的最主要接口,它提供了基本的保存.更新.删除和加载Java对象的方法. Session具有一个缓存,位于缓存中的对象称为持久化对象,Session能够在某些时间点来同步更新数据库,这一过程即为清理缓存. Hibernate把对象分为4种状态:持久化状态.临时状态.游离状态和删除状态. 二.Session的缓存: Session的缓存由一系列Java集合构成的. 1.Session缓存的作用: A.…
一.数据库事务的概念: 数据库的ACID特征:Atomic.Consistency.Isolation.Durability.原子性.一致性.隔离性.持久性.不同的隔离级别引发的不同问题. 事务的ACID特征是由数据库管理系统来实现的. 数据库管理系统通过锁机制来实现事务的隔离性.二.声明事务边界的方式: 1.声明事务包含以下内容: A.事务的开始边界(BEGIN): B.事务的正常结束边界(COMMIT):提交事务. C.事务的异常结束边界(ROLLBACK):撤销事务. 2.声明事务有以下方…
一.配置数据库连接池: 1.使用默认的数据库连接池: Hibernate提供了默认了数据库连接池,它的实现类为DriverManegerConnectionProvider,如果在Hibernate的配置文件中没有明确配置任何连接池,Hibernate就会使用这个默认的连接池. 注意:在开发正式的商业软件产品时,不能使用这个连接池,因为它不是成熟的专业连接池产品,缺乏响应大批量并发请求及荣错的能力. 2.使用配置文件指定的数据库连接池: hibernate.properties配置C3P0连接池…
本节介绍HQL和QBC的高级用法:各种连接查询.投影查询.报表查询.动态查询.集合过滤和子查询等.另外将归纳优化查询程序代码,从而提高查询性能的各种技巧.一.连接查询: HQL与QBC支持的各种连接类型: 在程序中指定的连接查询类型 HQL语法 QBC语法 适用范围 内连接 inner join或者join Criteria.createAlias() 适用于有关联关系的持久化类,并且在映射文件中对这种关联关系做了映射 迫切内连接 inner join fetch或者join fetch 不支持…
本文依旧以Customer类和Order类进行说明.一.引言: Hibernate检索Customer对象时立即检索与之关联的Order对象,这种检索策略为立即检索策略.立即检索策略存在两大不足: A.select语句太多,而且会出现N+1的问题.所谓N+1,1是指先查出所有的Customer集合,N是指针对每个Customer再查询其关联的Order集合.N+1可以通过一条外连接查询语句完成. B.应用逻辑上可能并不需要Order集合,此时加载Order集合浪费内存空间. 为解决上述问题,Hi…
Hibernate提供了以下几种检索对象的方式: A.导航对象图检索方式. B.OID检索方式.Session.get() load(); C.HQL检索方式.Query. D.QBC检索方式.Query By Criteria. E.本地SQL检索方式. 一.HQL检索方式:Hibernate Query Language HQL是面向对象的查询语言.它包含以下功能: 1.在查询语句中设定各种查询条件. 2.支持投影查询,即仅检索出对象的部分属性. 3.支持分页查询. 4.支持连接查询. 5.…