Introduction to Hibernate
EE classic three-tier structure
What is the framework
软件的半成品,已经完成部分的功能
What is Hibernate
Hibernate是一个持久层的ORM框架。
What is ORM
ORM: Object Relational Mapping (Object-relational mapping). It refers to the establishment of a mapping between Java objects in a relational database table, so that the operator can manipulate objects on tables in the database.
Why learn Hibernate
A common configuration of Hibernate
XML configuration question
See in particular
can not hibernate when prompted about writing xml document solutions
mapped configuration
class标签的配置
标签用来建立类与表的映射关系
属性:
name :类的全路径
table :表名(类名与表名一致,table可以省略)
catalog :数据库名
id标签的配置
标签用来建立类中的属性与表中的主键的对应关系
属性:
name :类中的属性名
column :表中的字段名(类中的属性名和表中的字段名如果一致,column可以省略)
length :长度
type :类型
property标签的配置
标签用来建立类中的普通属性与表的字段的对应关系
属性:
name :类中的属性名
column :表中的字段名(类中的属性名和表中的字段名如果一致,column可以省略)
length :长度
type :类型
not-null :设置非空
unique :设置唯一
Core Configuration
必须的配置
连接数据库的基本的参数
驱动类
url路径
用户名
密码
方言
可选的配置
显示SQL :hibernate.show_sql
格式化SQL :hibernate.format_sql
自动建表 :hibernate.hbm2ddl.auto
none :不使用hibernate的自动建表
create :如果数据库中已经有表,删除原有表,重新创建,如果没有表,新建表。(测试)
create-drop :如果数据库中已经有表,删除原有表,执行操作,删除这个表。如果没有表,新建一个,使用完了删除该表。(测试)
update :如果数据库中有表,使用原有表,如果没有表,创建新表(更新表结构)
validate :如果没有表,不会创建表。只会使用数据库中原有的表。(校验映射和表结构)。
映射文件的引入
The Hibernate API
Configuration: Hibernate configuration object
作用:
加载核心配置文件
加载映射文件
SessionFactory: Session factory
SessionFactory内部维护了Hibernate的连接池和Hibernate的二级缓存。是线程安全的对象。一个项目创建一个对象即可。
配置连接池
抽取工具类
Session: Connection object is similar to the connection object
Session代表的是Hibernate与数据库的链接对象。不是线程安全的。与数据库交互桥梁。
方法:
save
get/load
update
delete
saveOrUpdate
creatQuery
createSQLQuery
***** get方法和load方法的区别
* get方法
* * 采用的是立即加载,执行到这行代码的时候,就会马上发送SQL语句去查询。
* * 查询后返回是真实对象本身。
* * 查询一个找不到的对象的时候,返回null
*
* load方法
* * 采用的是延迟加载(lazy懒加载),执行到这行代码的时候,不会发送SQL语句,当真正使用这个对象的时候才会发送SQL语句。
* * 查询后返回的是代理对象。javassist-3.18.1-GA.jar 利用javassist技术产生的代理。
* * 查询一个找不到的对象的时候,返回ObjectNotFoundException
Transaction: Transaction Object
Hibernate中管理事务的对象
commit();
rollback();