Hibernate学问
Hibernate常识
OR映射 对象关系映射
Hibernate对JDBC进行了封装,面对对象进行操作,底层仍然是JDBC
Hibernate以对象之间关系的映射为核心
关注对象之间的映射关系(一对一,多对一,多对多)
通过对象找到其它对象---面向对象,将表间的关联查询进行了转换
类与数据库中的表映射
内存中的一个对象映射为表中的一行
对象的属性与表的字段映射
Hibernate操作实体类
实体类必须要有id属性,作为数据库的唯一标识
实体类必须要有无参的构造方法
hibernate.hbm2ddl.auto
update 自动检查表是否存在,
如果不存在则创建
如果存在,则对比数据库表与类的字段属性
如果类有增加字段,则增加数据库的字段;
如果类的字段减少了,数据库字段是不会删除的;
一个session就是底层JDBC与数据库连接的实例
session不是线程安全的,它代表与数据库之间的1次或多次操作,介于connection与transaction之间
session一般都从数据库连接池中获取,如c3p0
connection的生命周期很长
每个session对应一个transaction对象,也可以对应多个
JDBC事务管理,setAutoCommit(false); commit()
JTA可以跨数据库进行事务管理
Hibernate的session包括了对JDBC和JTA的事务管理功能
持久化状态的对象特征:
被session管理,有数据库标识,而且数据会自动与数据库同步(在事务提交时)