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语句完成。