Hibernate零基础回顾-02

1、hibernate主键生成策略

native 根据使用的数据库来选择identity、sequence、hilo三种生成器中的一种。

uuid:生成uuid的主键值。

increment:用户long、short、或者int类型,由Hibernate自动以递增的方式生成唯一标识符,每次增量为1。不能在集群中使用。

identity:采用底层数据库本身提供的主键生成标识符,条件是数据库支持自动增长数据类型。

sequence:根据底层数据库序列s生成标识符,条件是数据库支持序列。

assigncd:由java程序负责生成标识符,如果不指定id元素的generator属性,则默认使用该标识符。适用于自然主键。

2、实体类的三种状态与SaveOrUpdate方法

瞬时态:对象里面没有ID值,对象与session没有关联。

持久态:对象里面有ID值,对象与session有关联

托管态:对象里面有ID值,对象与session没关系

SaveOrUpdate操作瞬时态应用的是保存。

SaveOrUpdate操作托管态应用的是修改。

SaveOrUpdate操作持久太应用的是修改。

3、一级缓存

hibernate的一级缓存默认是打开的

hibernate的一级缓存使用范围,是session范围,从session的创建到session关闭的范围

hibernate的一级缓存中,存储的数据必须是持久态数据

当进行查询的时候,首先到一级缓存中查询,找不到去数据库中查询,将查询到的对像中的属性值,保存在一级缓存中

特性:持久态自动更新数据库

在提交事物的时候,会将一级缓存中的数据与快照区中的数据做比较,如果不相同,更新数据库中的信息

4、二级缓存

hibernate二级缓存默认不开启

hibernate二级缓存范围是sessionFactory

5、Hibernate事物操作

事务:操作中最基本的单元,要么都成功要么都失败。

原子性:

一致性:

6、实现与本地Session绑定

   可以确保session是完全单线的。

(1)核心配置文件中配置session

(2)通过SessionFactory获取与本地绑定的session,此刻的session会随着线程结束而关闭,不需要手动关闭了

7、Hibernate的api之Query

使用query对象查询,不需要写sql语句,但需要写hql语句,hql语句操作的是实体类和属性。

8、Hibernate的api之Criteria

使用criteria查询时,不需要写语句,直接调用方法实现。

9、Hibernate的api之SQLQuery

调用底层sql语句完成。

猜你喜欢

转载自blog.csdn.net/qq_33274797/article/details/82952209