更多内容,点击了解: https://how2j.cn/k/framework-interview/framework-interview-hibernate/626.html
步骤1:什么是HIBERNATE
步骤2:POJO是什么
步骤3:HIBERNATE 开发流程
步骤4:one-many怎么配置
步骤5:many-one怎么配置
步骤6:many-many 怎么配置
步骤7:get与load的区别
步骤8:常见查询3种方式
步骤9:三种状态
步骤10:openSession与getCurrentSession的区别
步骤11:1级缓存
步骤12:2级缓存如何配置
HIBERNATE 是一种轻量级的ORM的实现,是对JDBC的一种封装。
ORM是意思是 对象与关系数据库之间的映射 Object Relation Database Mapping.
POJO的全称是plain old java object
相当于JAVA BEAN,又叫做实体类 entity bean
一个完整的hibernate 开发流程包含如下这些步骤
以Category和Product的一对多为举例
还是以Product和Category为例
<many-to-one name="category" class="Category" column="cid" />
详细参考 Hibernate 实现多对一
以User和Product为例子
<set name="products" table="user_product" lazy="false"><key column="uid" /><many-to-many column="pid" class="Product" /></set>
详细请参考 Hibernate 实现多对多
通过id获取Product对象有两种方式,分别是get和load
他们的区别分别在于
详细请参考 Hibernate GET和LOAD的区别
这三种分别是HQL,Criteria和标准SQL
实体类对象在Hibernate中有3种状态
分别是瞬时,持久和脱管
瞬时 指的是没有和hibernate发生任何关系,在数据库中也没有对应的记录,一旦JVM结束,这个对象也就消失了
持久 指得是一个对象和hibernate发生联系,有对应的session,并且在数据库中有对应的一条记录
脱管 指的是一个对象虽然在数据库中有对应的一条记录,但是它所对应的session已经关闭了
代码演示参考 Hibernate 对象的三种状态 瞬时 持久 脱管
Hibernate 有两种方式获得session,分别是:
OpenSession和getCurrentSession
他们的区别在于
代码演示 参考 Hibernate OpenSession与GetCurrentSession的区别
hibernate默认是开启一级缓存的,一级缓存存放在session上
代码演示参考 什么是Hibernate的一级缓存
Hibernate的一级缓存是在Session上,二级缓存是在SessionFactory上
配置方式:
要在hibernate.cfg.xml中开启
<property name="hibernate.cache.use_second_level_cache">true</property><property name="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</property>
实例参考 : 如何进行Hibernate的ehcache二级缓存配置
更多内容,点击了解: https://how2j.cn/k/framework-interview/framework-interview-hibernate/626.html