首页 > Web开发 > 详细

Hibernate4基础

时间:2020-04-29 12:54:52      阅读:77      评论:0      收藏:0      [点我收藏+]

hibernate4核心包

<<hibernate4.rar>>

hibernate4jar包

<<hibernate-release-4.3.5.Final.zip>>

? ?

hibernate配置文件

<<hibernate.cfg.xml>>

映射文件

<<Student.hbm.xml>>

Hibernate 简介

技术分享图片

Hibernate4 Hello World 实现

配置映射文件

技术分享图片

设置Hibernate配置文件

技术分享图片

hibernate会根据hibernate配置文件找到映射文件,读取映射文件在数据库中自动建立表,添加表中内容

Service创建数据库的表

技术分享图片

Hibernate4 CRUD 体验

HibernateUtil 封装

<<HibernateUtil.java>>

XML CRUD 实现

<<StudentTest.java>>

注解版 CRUD 实现

<<Teacher.java>>

配置hibernate配置文件

技术分享图片

Junit4 单元测试框架引入

<<junit4.4.jar>>

配置

? ?

技术分享图片

? ?

技术分享图片

配置文件

<<TeacherTest2.java>>

单元测试

技术分享图片

映射对象标识符(OID)

Hibernate 用对象标识符(OID)来区分对象

技术分享图片

? ?

技术分享图片

Hibernate 对象标识符生成策略

技术分享图片

? ?

技术分享图片

关联关系一对多映射

班级学生一对多映射实现(单向)

在多对一的多中实例一个一的关联对象(外键关联)

技术分享图片

配置一的配置文件

配置主表

技术分享图片

配置hibernate文件

技术分享图片

事物处理

技术分享图片

Junit4 方法详解

技术分享图片

test() 测试方法

级联保存更新

技术分享图片

? ?

技术分享图片

事务操作

技术分享图片

设置配置文件

技术分享图片

班级学生一对多映射实现(双向)

一对多中在一的类中实例多的Set集合用于存放多的元素

技术分享图片

配置一对多中一的配置文件

技术分享图片

配置事务

技术分享图片

单元测试

技术分享图片

inverse 属性

配置文件

技术分享图片

事务处理

技术分享图片

级联删除(一般不使用,操作很危险,导致业务数据丢失

(内部操作是先删除要要删除表的外键表的元素,再删除表)

配置文件

技术分享图片

事务处理

技术分享图片

一对多双向自身关联关系映射

类成员(自身关联)

技术分享图片

配置文件(自身一对多,自身多对一,放在一起)

技术分享图片

配置hibernate文件

技术分享图片

事务处理

技术分享图片

Hibernate 操作对象

Hibernate 中四种对象状态

技术分享图片

? ?

技术分享图片

? ?

技术分享图片

数据的状态和持久层操作的关系

技术分享图片

Hibernate操作对象&Session 常用方法讲解

技术分享图片

LoadGet

技术分享图片

游离状态和持久化状态的转化

技术分享图片

把不同状态的对象自动持久化

技术分享图片

合并对象(使用merge方法,将存活的对象一起提交)

(使用update时,当一个session操作数据时,另一个session不可以操作同一个数据(Session缓存中有一个存活的数据),会报错)

删除对象

技术分享图片

Hibernate 映射类型

基本类型映射

技术分享图片

基本映射类型

技术分享图片

配置文件

技术分享图片

配置hibernate文件

技术分享图片

具体事务

技术分享图片

集合类型映射(数据类型的映射)

技术分享图片

Set

设置Set集合

技术分享图片

配置文件

技术分享图片

配置hibernate文件

技术分享图片

具体事务

设置集合

技术分享图片

获取集合

技术分享图片

List

设置List集合

技术分享图片

配置文件

技术分享图片

配置hibernate文件

技术分享图片

具体事务

设置集合

技术分享图片

获取集合

技术分享图片

Bag

设置List集合(用List模拟,没有序列的List)

技术分享图片

配置文件

技术分享图片

配置hibernate文件

技术分享图片

具体事务

设置集合

技术分享图片

获取集合

技术分享图片

Map

设置Map集合

技术分享图片

配置文件

技术分享图片

配置hibernate文件

技术分享图片

具体事务

设置集合

技术分享图片

获取集合

技术分享图片

Hibernate 映射继承(三种继承关系,表的主外键结构)

每个具体类对应一个表

Student

技术分享图片

Image(是抽象的,不做具体实现的)

技术分享图片

LifeImage,WorkImage(做具体实现的)

技术分享图片

配置具体实现的类

技术分享图片

Set集合的StudentStudent对应的是抽象的类不用设置一对多

技术分享图片

配置Hibetnate文件

技术分享图片

具体事务

技术分享图片

根类对应一个表

Image是具体实现的不是抽象的时候,image下的LifeImage不做具体实现

技术分享图片

配置节点字段或根节点字段

技术分享图片

在节点字段或根字段的类,添加标识

技术分享图片

配置hibernate文件

技术分享图片

具体事务

技术分享图片

每个类对应一个表

当节点字段或根节点字段做实现,子类字段也做实现时

配置节点字段或根节点字段

技术分享图片

具体事务

技术分享图片

表结构

技术分享图片

Hibernate 映射关系

Hibernate 一对一映射关系实现

技术分享图片

主键映射

配置文件

主表

技术分享图片

? ?

技术分享图片

从表

技术分享图片

? ?

技术分享图片

表结构(主表的主键关联从表的主键)

技术分享图片

具体事务(先插入到主表中,在根据和主表主键一致的从表主键插入数据到从表)

技术分享图片

外键映射

配置文件

主表

技术分享图片

? ?

技术分享图片

从表

技术分享图片

? ?

技术分享图片

表结构(主表的外键关联从表的主键,主表的一个外键只能关联一个从表的主键)

技术分享图片

Hibernate 多对多映射关系实现

技术分享图片

单向

主表

技术分享图片

配置文件

技术分享图片

从表(单向的从表不需要配置文件和关联成员字段)

配置hibernate文件

技术分享图片

表结构(通过中间表实现多对多的关系)

技术分享图片

具体事务

技术分享图片

可以通过学生获取该学生的所有课程(多对多,单向,)

不可通过课程获取学生

技术分享图片

双向

主表

技术分享图片

配置文件

技术分享图片

从表

技术分享图片

配置文件

技术分享图片

表结构

技术分享图片

具体事务

除了可以单向的获取信息,同时可以反向获取数据

技术分享图片

Hibernate 检索策略

检索策略属性 Lazy(一般使用默认的)

技术分享图片

Lazy默认true延迟检索

配置一对多的多一端(主表的配置文件,配置的从表)

具体事务

技术分享图片

Lazyflase(立即检索)

配置文件

技术分享图片

具体事务

技术分享图片

Lazyextra(增强延迟检索)

例如查询结果集的数量,不需要全部查询,使用extra会优化Sql查询语句

Lazyproxy(代理延迟检索)

查询多对一中的多端时,当数据被使用的时,会使用代理类查询具体数据

Lazy为no-proxy(无代理延迟检索)

查询多对一中的多端时,当数据被使用的时,使用一个null值查询具体数据

检索策略属性 batch-size

技术分享图片

具体事务Class端配置的,链接维护端

技术分享图片

批量延迟检索

配置文件(批量检索3个班级,不是一次检索一个班级)

技术分享图片

批量立即检索(不需要一个一个的,直接去不查询Class)

配置文件

技术分享图片

检索策略属性 Fetch

技术分享图片

配置文件Class端配置的,链接维护端

查询方式

技术分享图片

子查询

技术分享图片

在查询数据量大的时候,sql查询会被优化一些

迫切左外连接查询方式

技术分享图片

使用hql查询时,设置会被忽略,还是查询方式

在查询数据量大的时候,sql查询会被优化一些

具体事务

技术分享图片

Hibernate 查询方式

Hibernate 查询方式简介

技术分享图片

本地 SQL 查询方式

Sql查询

技术分享图片

带参数的Sql查询

技术分享图片

HQL 查询方式(面向对象的查询语言,使用最广的

技术分享图片

普通查询

技术分享图片

带条件查询

技术分享图片

使用别名

技术分享图片

对结果排序

技术分享图片

分页查询

技术分享图片

查询单个对象

技术分享图片

链式写法

技术分享图片

QBC 查询方式(用接口来实现的查询方式)

技术分享图片

普通查询

技术分享图片

带条件的查询

技术分享图片

对结果排序

技术分享图片

分页查询

技术分享图片

查询单个对象

技术分享图片

链式查询

技术分享图片

Hibernate 高级配置

<<C3P0.rar>>

配置数据库连接池

技术分享图片

配置hibernate文件

C3P0配置

<!-- 最小连接数 -->

<property name="c3p0.min_size">7</property>
<!-- 最大连接数 -->
<property name="c3p0.max_size">42</property>
<!-- 获得连接的超时时间,如果超过这个时间,会抛出异常,单位毫秒 -->
<property name="c3p0.timeout">1800</property>
<!-- 最大的PreparedStatement的数量 -->
<property name="c3p0.max_statements">50</property>

配置日志框架 Log4J

<<log4j-1.2.17.rar>>

lpg4j配置百度百科

https://baike.baidu.com/item/log4j/480673?fr=aladdin

? ?

技术分享图片

具体事务日志输出配置

技术分享图片

? ?

技术分享图片

输出样式

技术分享图片

配置 Hibernate 二级缓存

技术分享图片

? ?

技术分享图片

从一级缓存中获取

单个事务中缓存中的数据是共享的

技术分享图片

多个事务中缓存中的数据是独立的

技术分享图片

Hibernate二级缓存配置

<<ehcache.rar>>

ehcache配置文件加入工程的src目录

<<ehcache.xml>>

配置Hibernate配置文件

<!-- 启用二级缓存 -->
<property name="cache.use_second_level_cache">true</property>
<!-- 配置使用的二级缓存的产品 -->
<property name="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</property>
<!-- 配置启用查询缓存 -->
<property name="cache.use_query_cache">true</property>

配置对象文件

技术分享图片

具体事务

技术分享图片

? ?

Hibernate4基础

原文:https://www.cnblogs.com/ChengR/p/12801343.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!