1 hibernate:一个操作持久层的框架,ORMapping思想的框架
2.ORMapping 对象关系映射
类 对应 一张表
对象 对应 一行数据
属性 对应 表的列
id 对应 主键
3.hibernate的开发
1.搭建hibernate的环境
导入jar包
导入运行环境相关的配置文件 src/hibernate.cfg.xml【etc/xx】
1.于数据库连接的相关参数
connection.driver_class
connection.url
connection.username
connection.password
2.自身属性相关的参数
dialect:方言
show_sql
format_sql
3.注册映射文件
<mapping resource="xx/xxx/xxxx.hbm.xml"/>
导入映射文件
xxx.hbm.xml
<class name="类全路径" table="对应的表">
<!--配置主键信息-->
<id name="属性id" column="列名" type="类当中的类型">
<generator class="increment"/>
</id>
<!--非主键相关的信息-->
<property name="属性" column="列名" type="xxx"/>
</class>
位置随意
2.使用hibernate的core API 进行开发
1.通过Configuration读取配置文件获得SesssionFactory[重量级资源]
2.通过SessionFactory获得Session[用户操作的对象]
Session提供了一套CRUD方法,依赖于主键
session.save(Object)
查询 session.get(obj.class,pk)
修改和删除 先查询在修改/删除
3.要通过Session获得Transaction控制事务的对象
session.getTransaction()
tx.begin();
tx.commit();
4.如果有dao层,和Biz层 事务要再Biz层中控制
5.java当中对象不是孤立的,有关系
6.对象与对象的关系分为三大类
关联关系
继承关系
值对象关系
7.关联关系
1:1 人 Person 身份证 IdCard 1一个只有一个身份证号码
name number //编号
age Expire//有效期
IdCard Person
关系属性:IdCard不是Person的固有属性,只是为了表达与Person的关系
维护内存中的对象之间的关系
双向关系:从任意一个对象都能找到另外一个对象[双方都配置了关系属性]
单向关系:只有一方配置了关系属性
在表当中约定 t_Person 和 t_IdCard 的一对一关系:主外键关系
1:* 一对多关系
用户 User 订单 Order 一个用户可以有多个订单,一个订单只对应一个用户
name address
age price
关系属性: Set<Order> User
*:* 多对多关系
学生 Student 课程 Course 一个学生有多门课,一个课程有多个学生
name name
关系属性: Set<Course> Set<Student>
1:1关系在表当中处理的方式采用主外键约束
1.唯一外键:外键可以重复,在外键的基础上加上一个唯一性约束
t_person t_idcard
t_id p_id 外键+唯一性约束
1 1
2 2
2.共享主键
t_person t_idcard
t_id (主键) t_id 作为主键同时是外键
共享主键建表:特点关系密度高
配置映射文件
Hibernate在关联对象时重要的思想:传递性持久化
保存一方是另一方也保存,查询一方的时候另一方也被查询
在数据库对表进行删除获得插入式
插入数据:先插入父表,在插入子表
删除数据:先删除子表,在删除父表
cascade 级联:设定操作当前对象时如何操作与该对象关联的对象
none:默认值,保存,删除,更新对象时,忽略关联对象
save-update:通过save()或者update(),saveOrUpdate()保存或者更新当前对象时,同时更新
和保存级联对象
delete:通过delete()方法删除当前对象时,级联删除关联对象
all:save-update与delete的集合,如果对当前对象进行lock()或者evict()操作时,级联对 象进行相同的操作
delete-orphan:删除所有和当前对象解除关联关系的对象
all-delete-orphan:包含all和delete-orphan的行为
一对一:唯一外键:为外键加上唯一约束
公司 Company 地址 Address
关系属性 Address Coompany
作业: 学生 和 电脑
Hibernateday02学习笔记
最新推荐文章于 2024-08-30 18:40:43 发布