Hibernate-day02--主键生成策略 -一级缓存-事务管理

1.持久化类的编写规则

2.主键的分类

1.自然主键 :利用表中的一个字段
2.代理主键 :本身不是表中必须的字段
--使用还是比较推荐代理主键,一旦主键参与到业务逻辑层,可能要修改源码
-- 好的程序满足OCP原则 ,对程序的扩展OPen,对源码的修改close的

3.主键的生成策略

1.主键的开发一般不允许用户手动设置主键,一般主键交给数据库,手动写程序设置,在Bibernate为了减少程序的编写,提供了很多种主键的生成策略。
---icrement :自动增长机制,适用于short,int,long类型的主键
---sequence:适用于short,int,long类型的主键,试用oracle
--indetity:适用于short,int,long类型的主键,试用Mysql
---uuid:试用于字符串类型的主键,使用hibernate中的随机方式生成字符串主键。
---native:本地策略,可以在indetity和sequence之间自动切换
---assigned:放弃外键的管理,通过手动编写程序或者用户自己设置。
---foreign:外部的,一对一的一种关系映射的情况。

4.持久态,瞬时态,托管态

1.持久态:持久化对象就是已经被保存进数据库的实体对象,并且这个实体对象现在还处于Hibernate的缓存管理之中。这是对该实体对象的任何修改,都会在清理缓存时同步到数据库中.
2.瞬时态:当我们通过Java的new关键字来生成一个实体对象时,这时这个实体对象就处于自由状态。
3.托管态:当一个持久化对象,脱离开Hibernate的缓存管理后,它就处于游离状态,游离对象和自由对象的最大区别在于,游离对象在数据库中可能还存在一条与它对应的记录,只是现在这个游离对象脱离了Hibernate的缓存管理,而自由对象不会在数据库中出现与它对应的数据记录。


image.png

5.一级缓存

1.快照区:当进行读取的时候,会将其保存到快照区,当对这个对象修改的时候会在缓存区和快照区的进行对比,如果不一样则会对数据库发送修改指令。


image.png

6.事务

1.事务:也就是指逻辑上的一组操作要么全部成功,要么全部失败。

事务的特性:
1.原子性:代表事务不可分割
2.一致性:代表事务执行的前后,数据的完整性保持一致。
3.隔离性:代表一个事务执行的过程中,不应该受到其他事务的干扰。
4.持久性:代表事务执行完成后,数据就持久到数据库中。

image.png
2.设置隔离级别

<property name="hibernate.connection.isolation">4</property>


image.png

6.其他API

Query:用于接收HQL,查询多个对象


image.png
image.png

image.png
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容