admin管理员组文章数量:1565816
2024年5月17日发(作者:)
数据库的表关系图
1>:one-to-one(一对一关联)主键关联:
一对一关联一般可分为主键关联和外键关联
主键关联的意思是说关联的两个实体共享一个主键值,但这个主键可以由两个表产生.
现在的问题是:
*如何让另一个表引用已经生成的主键值
解决办法:
*Hibernate映射文件中使用主键的foreign生成机制
eg:学生表:
cascade="all">
name="card" class=""
添加: class="" fetch="join" cascade="all" /> 以下对这二点进行说明. 立即加载:表示在从数据库中取得数据组装好一个对象后,会立即再从数据库取得数据 组装此对象所关联的对象 延迟加载:表示在从数据库中取得数据组装好一个对象后,不会立即从数据库中取得数 据组装此对象所关联的对象, 而是等到需要时,才会从数据库取得数据组装此关联对象. join:连接抓取,Hibernate通过在Select语句中使用outer join(外连接)来获得对象的 关联实例或者关联集合. select:查询抓取,Hibernate需要另外发送一条select语句抓取当前对象的关联实体或 集合. ******所以我们一般用连接抓取 证件表: catalog="study"> user constrained="true"> 一对一映射必须加载的元素有: name class constrained(主键关联) fetch(关联的一方才有:意思是说需要通过这一方查询另一方数据的一方.比如学 生表查询证件中的数据,学生就是关联的一方) cascade(关联的一方才有:意思是说需要通过这一方保存或者更新数据对另一方 也产生影响(另一方也保存或者更新了,比如保存学生信息,那么与学生相关联的证件信息也 保存了)) 2> 开发中可以参照 这里,学生表保存不变,只改变证件表: unique="true"/> 3>: 一对多关联分为单向一对多关联和双向一双多关联 单向的一对多关联只需要在一方进行映射配置 单身一对多关联: catalog="study"> name="ers" table="customers" inverse="true"> name="orders" table="orders" cascade="save-update" 这里需要强调的是 name table lazy:当为true时为延迟加载,为false时为立即加载 inverse:用于表示双向关联中的被动一端,inverse的值为false的一方负责维护关联关 系 cascade sort:排序关系,unsorted(不排序),natural(自然排序),comparatorClass(由某个实现 了ator接口的类型 指定排序算法。); ****** 4>: 如果要设置一对多双向关联关系.那么还需要在"多"的映射文件中使用 class="ers" column="customers_ID" cascade="none" outer-join="auto" insert="false" insert和update设定是否对column属性指定的关联字段进 行insert和update操作 update="false"> 4>多对多关联: 多对多关联时要建一个连接表查询 学生的映射文件 cascade="save-update" inverse="false"> column="teaID"> class="rs" ***对 它的控制主要是通过stuID(外键)来完成,就是我们从student_teacher_table表 中我们只要 select * from student_teacher_table where stuID='该学生的ID',这样我们就 可以得到它的教师的ID了 ***对 我们从student_teacher_table表中根据stuID拿到了与该stuID关联的teaID, 然后select * from teacher where teaID='前一步拿到的teaID' 教师的映射文件 column="stuID"> class="ts"
版权声明:本文标题:数据库的表关系图 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1715880038a474958.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论