Hibernate详细配置
Hibernate运行原理:
创建Configuration对象(读取hibernate.cfg.xml配置文件) —》SessionFactory ---> Session ---->
Transaction ----> 执行操作 ---》关闭Session。
session常用方法:
save(Object obj) —— 添加数据。
update(Object obj) —— 修改数据
delete(Object obj)—— 删除数据。
get(Class cls, 主键) —— 查询单个对象。
1. 手动配置Hibernate?
步骤:
a) 配置并建立数据库连接信息。
b) 给项目添加Hibernate支持。
c) 创建一个实体类(跟数据库表的列对应)。
d) 还需要建立一个配置文件(实体名.hbm.xml),让实体与数据库中表对应(ORM对象关系映射)。
e) 将对象关联的配置文件添加到hibernate.cfg.xml中。
2. 自动配置Hibernate?
略。。。。。。。。。。。
3. Hibernate中的主键管理?
重点掌握3种主键的管理策略:
Oracle数据库:sequence(序列)
其他类型数据库:native(本地管理(数据库自行管理))
程序中手动控制:assigned(手动设置主键值)
4. 数据库中的关联关系如何处理?
数据表中的关联关系处理:1....1 关系 、 1.....n 关系 、 n.......n 关系(1...n关系)
好处:提取数据更方便快捷。
注意事项:
1. 不能使用property标签,表示对象类型(只能用来表示基本数据类型)。
2. 对象类型必须使用关联标签配置。(many-to-one(外键表配置使用;例如:emp)、set(主键表配置;例如:Dept))
3. 当实体中多个属性,对应数据库中一个列时;添加、修改时不能判断到底使用哪一个属性;所以必须在(关联标签中配置<many-to-one>(insert="false" update="false"))
4. 配置关联关系时,必须在主键表中的<set>端添加一个属性:inverse=”true”;(表示两张表中之间的关系由主键表来维护)
5. 级联删除数据;(删除主键表的数据时,将外键表中的数据一起删除);在<set>端添加cascade=”delete”;(这个属性不能直接启用,需要先查询,然后再删除)。