
Hibernate
文章平均质量分 68
cris_zz
好事尽从难处得,少年无向易中轻
展开
-
Hibernate 学习之路(一):第一个hibernate程序
对象的持久化开始 hibernate 的学习之前,我们先来理解一下什么是对象的持久化 从狭义上来说,对象的持久化就是把数据永久的保存到数据库从广义来说,持久化其实就是包括了关于数据库的各种操作 保存:将数据永久的保存到数据库更新:更新数据库记录的状态删除:从数据库删除一条记录查询:根据特定的条件,把符合查询条件的一个或者多个对象对应的记录从数据库中加载到内存中加载:根据特定的 ...原创 2018-02-27 23:44:56 · 154 阅读 · 0 评论 -
Hibernate学习之路(十二):hibernate实现左外,内(迫切)连接(Oracle)
左连接迫切左外连接:LEFT JOIN FETCH 关键字表示迫切左外连接检索策略.list() 方法返回的集合中存放实体对象的引用, 每个 Department 对象关联的 Employee 集合都被初始化, 存放所有关联的 Employee 的实体对象. 查询结果中可能会包含重复元素, 可以通过一个 HashSet 来过滤重复元素 /* * 测试迫...原创 2018-03-12 23:04:15 · 571 阅读 · 0 评论 -
Hibernate 学习之路(六):双向一对多映射
hibernate如何处理双向的一对多映射呢?双向 1-n 与 双向 n-1 是完全相同的两种情形双向 1-n 需要在 1 的一端可以访问 n 的一端, 反之依然.域模型:从 Order 到 Customer 的多对一双向关联需要在Order 类中定义一个 Customer 属性, 而在 Customer 类中需定义存放 Order 对象的集合属性关系数据模型:ORDERS 表中的 C...原创 2018-03-04 23:25:03 · 186 阅读 · 0 评论 -
Hibernate学习之路(十一):hibernate的检索方式(Oracle数据库)
总配置文件:hibernate.cfg.xml<hibernate-configuration> <session-factory> <!-- 配置连接数据库的基本信息 --> <property name="connection.username">scott</property>...原创 2018-03-11 23:09:20 · 262 阅读 · 0 评论 -
Hibernate学习之路(十): hibernate 的检索策略
检索策略当我们检索数据的时候,存在两个问题不浪费内存:当 Hibernate 从数据库中加载 Customer 对象时, 如果同时加载所有关联的 Order 对象, 而程序实际上仅仅需要访问 Customer 对象, 那么这些关联的 Order 对象就白白浪费了许多内存.更高的查询效率:发送尽可能少的 SQL 语句很多时候这两点都是冲突的,我们可以看看hibernate是如何处理这种...原创 2018-03-11 23:00:09 · 143 阅读 · 0 评论 -
Hibernate学习之路(九):继承映射
什么是hibernate的继承映射?对于面向对象的程序设计语言而言,继承和多态是两个最基本的概念。Hibernate 的继承映射可以理解持久化类之间的继承关系。例如:人和学生之间的关系。学生继承了人,可以认为学生是一个特殊的人,如果对人进行查询,学生的实例也将被得到Hibernate支持三种继承映射策略:使用 subclass 进行映射:将域模型中的每一个实体对象映射到一个独立的表中,...原创 2018-03-11 22:50:58 · 181 阅读 · 0 评论 -
Hibernate学习之路(八):双向多对多映射
hibernate如何处理双向多对多映射关系的?双向 n-n 关联需要两端都使用集合属性双向n-n关联必须使用连接表(即第三方表)集合属性应增加 key 子元素用以映射外键列, 还应增加many-to-many子元素关联实体类 在双向 n-n 关联的两边都需指定连接表的表名及外键列的列名. 两个集合元素 set 的 table 元素的值必须指定,而且必须相同。 set元素的两个子元素...原创 2018-03-11 22:46:25 · 165 阅读 · 0 评论 -
Hibernate 学习之路(五):hibernate 中的单向多对一映射
一对多关联关系在领域模型中, 类与类之间最普遍的关系就是关联关系. 以 Customer 和 Order 为例: 一个用户能发出多个订单, 而一个订单只能属于一个客户. 从 Order 到 Customer 的关联是多对一关联; 而从 Customer 到 Order 是一对多关联单向多对一单向 n-1 关联只需从 n 的一端可以访问 1 的一端域模型: 从 Order ...原创 2018-03-04 09:14:24 · 191 阅读 · 0 评论 -
Hibernate学习之路(十四): Hibernate的二级缓存
什么是hibernate的二级缓存缓存(Cache): 计算机领域非常通用的概念。它介于应用程序和永久性数据存储源(如硬盘上的文件或者数据库)之间,其作用是降低应用程序直接读写永久性数据存储源的频率,从而提高应用的运行性能。缓存中的数据是数据存储源中数据的拷贝。缓存的物理介质通常是内存Hibernate中提供了两个级别的缓存 第一级别的缓存是 Session 级别的缓存,...原创 2018-03-16 22:42:53 · 262 阅读 · 0 评论 -
Hibernate学习之路(十三):Hibernate中的QBC查询和本地sql操作
什么是hibernate的QBC查询QBC 查询就是通过使用 Hibernate 提供的 Query By Criteria API 来查询对象,这种 API 封装了 SQL 语句的动态拼装,对查询提供了更加面向对象的功能接口示例代码: /* * 第一个QBC查询(完全是基于对象的查询操作,更加方便) */ @Test void test...原创 2018-03-15 22:50:49 · 238 阅读 · 0 评论 -
Hibernate 学习之路(四):详解hibernate映射文件
POJO 类和数据库的映射文件*.hbm.xmlPOJO 类和关系数据库之间的映射可以用一个XML文档来定义。通过 POJO 类的数据库映射文件,Hibernate可以理解持久化类和数据表之间的对应关系,也可以理解持久化类属性与数据库表列之间的对应关系在运行时 Hibernate 将根据这个映射文件来生成各种 SQL 语句映射文件的扩展名为 .hbm.xml在具体详解映射文件之前,先...原创 2018-03-01 22:55:47 · 241 阅读 · 0 评论 -
Hibernate 学习之路(三): hibernate的核心配置文件详解
在hibernate配置文件中配置数据库连接池(c3p0)导入jar包: c3p0-0.9.5.2.jar;hibernate-c3p0-5.2.13.Final.jarmchange-commons-java-0.2.11.jarhibernate.cfg.xml<?xml version="1.0" encoding="UTF-8"?><!DO...原创 2018-03-01 22:51:04 · 380 阅读 · 0 评论 -
Hibernate 学习之路(二):Hibernate中的Session详解和持久化对象(二)
关于持久化对象经过 Session 处理后的流程图进一步测试session的方法class TestHibernate2 { private SessionFactory sessionFactory = null; private Session session = null; private Transaction transaction = nu...原创 2018-02-28 23:24:18 · 290 阅读 · 0 评论 -
Hibernate 学习之路(二): Hibernate中的Session详解和持久化对象(一)
什么是 Hibernate 的 SessionSession 是应用程序与数据库之间交互操作的一个单线程对象,是 Hibernate 运作的中心,所有持久化对象必须在 session 的管理下才可以进行持久化操作。此对象的生命周期很短。Session 对象有一个一级缓存,显式执行 flush 之前,所有的持久层操作的数据都缓存在 session 对象处。相当于 JDBC 中的 Connect...原创 2018-02-28 23:02:36 · 379 阅读 · 0 评论 -
Hibernate学习之路(七): 双向一对一映射
基于外键的一对一映射关系(双方互相持有对方的引用)对于基于外键的1-1关联,其外键可以存放在任意一边,在需要存放外键一端,增加many-to-one元素。为many-to-one元素增加unique=“true” 属性来表示为1-1关联<!-- 使用many-to-one的方式来映射1-1关联关系,重点是unique属性要设置为true --> <...原创 2018-03-05 22:52:36 · 243 阅读 · 0 评论