1.什么是 Hibernate ?
- 一个框架
- 一个 Java 领域的持久化框架
- 一个 ORM 框架
• Hibernate:
– 非常优秀、成熟的 ORM 框架。
– 完成对象的持久化操作
– Hibernate 允许开发者采用面向对象的方式来操作关系数据库。
– 消除那些针对特定数据库厂商的 SQL 代码
- Hibernate 不要求持久化类继承任何父类或实现接口,这可以保证代码不被污染。这就是Hibernate被称为低侵入式设计的原因
• myBatis:
– 相比 Hibernate 灵活高,运行速度快
– 开发速度慢,不支持纯粹的面向对象操作,需熟悉sql语句,并且熟练使用sql语句优化功能
2.ORM
- ORM(Object/Relation Mapping): 对象/关系映射
– ORM 主要解决对象-关系的映射
– ORM的思想:将关系数据库中表中的记录映射成为对象,以对象的形式展现,程序员可以把对数据库的操作转化为对对象的操作。
– ORM 采用元数据来描述对象-关系映射细节, 元数据通常采用 XML 格式, 并且存放在专门的对象-关系映射文件中.
3.Hibernate开发步骤
– 编写持久化类: POJO + 映射文件
– 获取 Configuration 对象
– 获取 SessionFactory 对象
– 获取 Session,打开事务
– 用面向对象的方式操作数据库
– 关闭事务,关闭 Session
4.创建 Hibernate 配置文件
- hbm2ddl.auto:该属性可帮助程序员实现正向工程, 即由 java 代码生成数据库脚本, 进而生成具体的表结构. 。取值 create | update | create-drop | validate
– create : 会根据 .hbm.xml 文件来生成数据表, 但是每次运行都会删除上一次的表 ,重新生成表, 哪怕二次没有任何改变
– create-drop : 会根据 .hbm.xml 文件生成表,但是SessionFactory一关闭, 表就自动删除
– update : 最常用的属性值,也会根据 .hbm.xml 文件生成表, 但若 .hbm.xml 文件和数据库中对应的数据表的表结构不同, Hiberante 将更新数据表结构,但不会删除已有的行和列
– validate : 会和数据库中的表进行比较, 若 .hbm.xml 文件中的列在数据表中不存在,则抛出异常
- format_sql:是否将 SQL 转化为格式良好的 SQL . 取值 true | false