Hibernate
hibernate的简单介绍
是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库
优势:跨数据库的无缝移植
hibernate的生命周期
hibernate核心类和接口的作用
详细说明链接: https://blog.youkuaiyun.com/chidou1692/article/details/100641364.
hibernate核心API简单讲解
Configuration:
Hibernate的配置对象,主要是用于加载Hibernate的核心配置文件,如读取hibernate.cfg.xml
SessionFactory:
Session工厂,用到了Java中的工厂模式;主要用于初始化hibernate,充当数据存储源的代理,并负责创建session对象
Session:
类似Connection的连接对象,代表的是Hibernate与数据库的连接对象(与数据库交互的桥梁),而且它不是线程安全的。
如何解决安全问题?
- SessionFactory.openSession():相当于直接通过SessionFactory创建一个新的Session,使用完成后要手动调用close()方法来关闭;
- SessionFactory.getCurrentSession():获取一个与线程绑定的Session,当我们提交事务或事务回滚后会自动关闭。
Session的常用方法
常用方法详解:
save | 保存方法 | 主要用作保存对象 |
get/load | 查询方法 | 简单说: get:会忽略加载策略,永远使用立即加载 load:默认使用延迟加载,会根据配置文件减少延迟加载 相同点:都是根据id来查询对象 不同点:getl立即加载,load延迟加载 get返回对象本身,load利用了代理返回代理对象 get查询不到对象返回null,load查询不到对象返回ObjectNotFoundException异常 一般情况下, |
delete | 删除方法 | 先查再删除,保证程序的健壮性 |
update | 修改方法 | 先查再改/局部修改 |
Transaction | 事务对象 | 分自动事务和手动事务 |
Query | 查询所有 | 查全部/批量修改或删除 |
详细可见:https://blog.youkuaiyun.com/yerenyuan_pku/article/details/98478888.
hibernate管理对象的三种状态
如何在项目中添加hibernate支持(手动添加)
一、添加hibernate相关依赖
在resource目录下添加hibernate.cfg.xml(核心配置文件)
1.1 添加DTD支持
1.2 添加Hibernate的配置
1.1.1 数据库相关(connection.username|connection.password|connection.url|connection.driver_class|dialect)
1.2.2 调试相关(show_sql|format_sql)
二、在开发阶段再创建实体类和实体映射文件(*.hbm.xml)
实体必须实现Serializable接口
注意:实体映射文件一定要加到核心配置文件
如何使用hibernate完成CRUD操作
一、 CRUD操作步骤
1 读取配置
2 创建SessionFactory
3 打开Session
4 开启事务
5 CURD
6 提交事务/回滚事务
7 关闭Session
二、 注意事项
1 hibernate默认使用的是手动事务,因此必须显示的开启和提交事务
2 删除操作时,必须先查再删
编写不易,如果有帮助到的话,可以关注,点赞和收藏哦~ ↩︎