Java-Hibernate

Java-Hibernate

码农世界 2024-05-16 后端 67 次浏览 0个评论

为什么要使用hibernate

1、对JDBC访问数据库流程进行了封装,简化了访问流程

2、是一个优秀的ORM框架,简化了DAO层的编码工作

3、hibernate使用反射机制,而不是字节码来增强程序透明性

4、hibernate性能好,本身是个轻量级框架,映射灵活性好,支持各种关系数据库,支持一对一到多对多的复杂关系

什么是ORM框架

ORM全称Object-Relational Mapping,即将代码中的model与关系数据库中的数据建立起映射

hibernate如何在控制台查看打印的sql语句

1、properties文件中配置

2、yml文件中配置

hibernate有几种查询方式

查询方式简介
HQLhibernate官方推荐,使用query对象进行查询
QBC使用Criteria对象查询
SQL原生sql

hibernate实体类可以被定义为final吗

是否可以被定义成final可以
是否建议定义成final不建议,hibernate会使用代理提升性能,使用final之后代理就无法实现了
如何补救将所有public方法放到一个接口中,final类再实现这个接口即可

hibernate中Integer、int映射有什么区别

Intergerint
是否可以为null可以不可以
使用区别hibernate本身是面向对象框架,更建议使用对象使用int需要进行一些特殊配置

hibernate是如何工作的

1、读取并解析配置文件

2、读取并解析映射文件

3、创建SessionFactory

4、打开session

5、创建并启动事务Transation

6、操作数据,进行持久化操作

7、提交事务

8、关闭session

9、关闭SessionFactory

get()、load()区别

get()load()
是否生成sql生成不生成
是否立即记载立即加载延迟加载
返回内容有直接返回,没有返回null会返回一个代理id
异常内部未定义异常会返回属性不存在异常

hibernate的缓存机制

一级缓存二级缓存
有效范围事务范围内应用生命周期
级别sessionsessionFactory
开启自动,无法卸载或关闭手动,默认不开启
其他特点不支持分布式存储,需要的话需要使用其他方案,比如redis等

hibernate对象有哪些状态

状态产生情况
瞬时刚new出来,还没id,与session无关联
持久有id,与session有关联
脱管无id,session close之后,与session无关联

hibernate getCurrentSession、openSession区别

getCurrentSessionopenSession
获取的是否是同一个session不是
特点获取的是同一个session,没有会创建每次新建session,需要手动关闭

hibernate实体类必须要有无参构造函数吗,为什么

是否必须有无参构造函数必须,因为hibernate使用无参构造函数创建对象
特殊说明如果没有写任何构造函数的情况下,默认是有无参构造函数的,如果写了构造函数就必须提供无参构函数

转载请注明来自码农世界,本文标题:《Java-Hibernate》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,67人围观)参与讨论

还没有评论,来说两句吧...

Top