page contents

谈谈Hibernate的理解,一级和二级缓存的作用,在项目中Hibernate都是怎么使用缓存的?

轩辕小不懂 发布于 2021-08-28 09:33
阅读 617
收藏 0
分类:Java开发
1788
Nen
Nen
- 程序员

Hibernate是一个开发的对象关系映射框架(ORM)。它对JDBC进行了非常对象封装,Hibernate允许程序员采用面向对象的方式来操作关系数据库。

Hibernate的优点:

1、程序更加面向对象

2、提高了生产率

3、方便移植

4、无入侵性

Hibernate的缺点:

1、效率比JDBC略差

2、不适合批量操作

3、只能配置一种关联关系

Hibernate有四种查询方式:

1、get、load方法,根据ID号查询对象。

2、Hibernate Query Language, HQL

3、标准查询语言

4、通过SQL查询

Hibernate工作原理:

1、配置Hibernate对象关系映射文件、启动服务器

2、服务器通过实例化Configuration对象,读取hibernate.cfg.xml文件的配置内容,并根据相关的需求建好表以及表之间的映射关系。

3、通过实例化的Configuration对象建立SessionFactory实例,通过SessionFactory实例创建Session对象。

4、通过Session对象完成数据库的增删改查操作。


Hibernate中的状态转移:

临时状态(Transient)

1、不处于Session缓存中

2、数据库中没有对象记录

补充说明-Java是如何进入临时状态的:1、通过new语句创建一个对象时。2、刚调用Session的delete()方法时,从Session缓存中删除一个对象时。

持久化状态(Persisted)

1、处于Session缓存中

2、持久化对象数据库中没有对象记录

3、Session在特定的时刻会保存两者同步

补充说明-Java如何进入持久化状态:1、Session的save()方法。2、Session的load().get()方法返回的对象。3、Session的find()方法返回的list集合中存放的对象。4、Session的update().save()方法。

流离状态(Detached)

1、不再位于Session缓存中

2、游离对象由持久化状态转变而来,数据库中还没有相应记录。

补充说明-Java如何进入流离状态:1、Session的close()。2、 Session的evict()方法,从缓存中删除一个对象。

请先 登录 后评论