mybatis实现一对一关联映射实例代码

网友投稿 279 2023-03-10


mybatis实现一对一关联映射实例代码

前言

在客观世界中,对象很少是孤独存在的,如班级与学生之间的关系,学生与课程之间的关系,它们的实例之间可以互相访问,这就是关联关系。MyBatis 的关联映射可以大大简化持久层数据的访问,关联关系的分类如下:

一对一

一对多

多对多

我们首先绘制一个简化的 E-R 图来表示三种关联关系。

上图表示的三种关系:

一对一:一个班主任只属于一个班级,一个班级也只能有一个班主任

一对多:一个班级有多个学生,一个学生只属于一个班级

多对多:一个学生可以选多门课,一门课可以有多个学生选

引言

而在实际项目开发中,经常存在一对一的关系,如一个人对应一张身份证信息,这就是一对一的关系。下面是一个简单的

实例:

1、建表过程我就省略了,主要是一张Person表,一张IDCard表,其相关属性见步骤2Pojo类属性所示;

2、建立一个Person对象和一个IDCard对象:

mybatis/pri/xiaoyang/otot/pojo/IDCard.java

public class IDCard implements Serializable {

private int id; // 主键

prhttp://ivate String cardCode; // 身份证编号

private String carAddress; // 身份证地址

//构造函数及Getter/Setter/toString...

}

mybatis/pri/xiaoyang/otot/pojo/Person.java

public class Person implements Serializable {

private int id; // 主键

private String name; // 姓名

private String sex; // 性别

private IDCard iDCard; //身份证对象,人和身份证一对一关系

//构造函数及Getter/Setter/toString...

}

3、接下来是XML映射文件:

mybatis/pri/xiaoyang/otot/mapper/IDCardMapper.xml

  

select * from idcard where id = #{id}

mybatis/pri/xiaoyang/otot/mapper/PersonMapper.xml

select * from person where id = #{id}

select="pri.xiaoyang.otot.mapper.IDCardMapper.selectIDCardById"

javaType="pri.xiaoyang.otot.pojo.IDCard"/>

注: 在PersonMapper.xml中定义了一个标签,该标签的sql语句是根据Person表的主键字段来查询出唯一的Person信息,由于该Person表和IDCard表关联,因此返回一个resultMap值为personMap的映射对象。personMap使用了标签映射了一对一的关联关系,其标签内的属性select表示会以column的属性值"card_id"来作为参数执行IDCardMapper中定义的selectIDCardById查询对应的IDCard数据,查询出的数据会被封装到property属性值的“card”对象中。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一jPIaYruvT定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。

select="pri.xiaoyang.otot.mapper.IDCardMapper.selectIDCardById"

javaType="pri.xiaoyang.otot.pojo.IDCard"/>

注: 在PersonMapper.xml中定义了一个标签,该标签的sql语句是根据Person表的主键字段来查询出唯一的Person信息,由于该Person表和IDCard表关联,因此返回一个resultMap值为personMap的映射对象。personMap使用了标签映射了一对一的关联关系,其标签内的属性select表示会以column的属性值"card_id"来作为参数执行IDCardMapper中定义的selectIDCardById查询对应的IDCard数据,查询出的数据会被封装到property属性值的“card”对象中。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一jPIaYruvT定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对我们的支持。


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:svn 开发接口(svn api接口)
下一篇:IntelliJ IDEA(2017)安装和破解的方法
相关文章

 发表评论

暂时没有评论,来抢沙发吧~