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

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

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

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

 public class IDCard implements Serializable {
private int id; // 主键
private 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

<mapper namespace="pri.xiaoyang.otot.mapper.IDCardMapper">
  <!-- 根据主键查询IDCard信息,封装为IDCard对象并返回 -->
<select id="selectIDCardById" pamaeterType="int" resultType="pri.xiaoyang.otot.pojo.IDCard">
select * from idcard where id = #{id}
</select>
</mapper>

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

<mapper namespace="pri.xiaoyang.otot.mapper.PersonMapper">
<!-- 根据person主键查询Person信息,封装为Person对象并返回 -->
<select id="selectPersonById" pamaeterType="int" resultMap="PersonMapper">
select * from person where id = #{id}
</select> <!-- 映射Person对象的resultMap -->
<resultMap type="pri.xiaoyang.otot.pojo.Person" id="PersonMapper">
<id property="id" column="id" />
<result property="name" column="name" />
<result property="sex" column="sex" />
<!-- 一对一关联映射:association -->
<association property="iDCard" column="card_id"
select="pri.xiaoyang.otot.mapper.IDCardMapper.selectIDCardById"
javaType="pri.xiaoyang.otot.pojo.IDCard"/>
</resultMap >
</mapper>

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

mybatis 一对一关联映射实例的更多相关文章

  1. (转)MyBatis框架的学习(五)——一对一关联映射和一对多关联映射

    http://blog.csdn.net/yerenyuan_pku/article/details/71894172 在实际开发中我们不可能只是对单表进行操作,必然要操作多表,本文就来讲解多表操作中 ...

  2. 04—mybatis的关联映射

    mybatis的关联映射一对一一对多多对多 一.一对一(一个人只能有一个身份证号) 1.创建表创建表tb_card CREATE TABLE `tb_card` ( `id` int(11) NOT ...

  3. 【Hibernate框架】关联映射(一对一关联映射)

    一.整理思路: 之前,小编总结过Mybatis的关联映射,接下来,再来总结一下hibernate的相关的关联映射,直接上图: 这张图,就是小编整理总结整个Hibernate的关联映射的一个大致思路. ...

  4. mybatis之关联映射

    ###mybatis使用之一对一关联映射 1)分析并画ER图.(特别是一对一.一对多.多对多的情况) 2)启动终端数据库,并建库建表,在表中插入值和字段,并查看结果.(后期把navicat用上) 3) ...

  5. Java基础-SSM之mybatis一对一关联

    Java基础-SSM之mybatis一对一关联 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.准备测试环境(创建数据库表)  1>.创建husbands和wifes表并建 ...

  6. Mybatis的关联映射

    实际的开发中,对数据库的操作常常会涉及到多张表,这在面向对象中就涉及到了对象与对象之间的关联关系.针对多表之间的操作,MyBatis提供了关联映射, 通过关联映射就可以很好的处理对象与对象之间的关联关 ...

  7. Hibernate之一对一关联映射

    Hibernate中一对一关联映射共分为两种,一种是一对一主键关联映射,另一种是一对一唯一外键关联映射.下面简单介绍一下这两种关联映射. 一对一主键关联映射 一对一主键关联映射的两个实体有相同的ID. ...

  8. mybatis一对一关联关系映射

    mybatis一对一关联关系映射 在关联关系中,有一对一,一对多,多对多三种关联关系. 一对一关系:在操作上,任意一方引入对方的主键作为外键. 一对多关系:在"多"的一方添加&qu ...

  9. Hibernate学习笔记(四)关系映射之一对一关联映射

    一. 一对一关联映射 ²        两个对象之间是一对一的关系,如Person-IdCard(人—身份证号) ²        有两种策略可以实现一对一的关联映射 Ø        主键关联:即让 ...

随机推荐

  1. hibernate使用注解简化开发

    简述 在编写hibernate的时候,需要将实体类映射到数据库中的表.通常需要一个配置文件(hibernate.cfg.xml),一个实体类(XX.Java),还有一个映射文件(XX.hbm.xml) ...

  2. C#实现软件开机自启动原理与代码

    1.软件自启动原理 软件自启动的原理要从Windows的注册表聊起,在Windows操作系统下,主要有2个文件夹和8个注册表键项控制程序的自启动,这部分的详细介绍可以参看博客http://www.cn ...

  3. MySQL show processlist说明

    html { font-family: sans-serif } body { margin: 0 } article,aside,details,figcaption,figure,footer,h ...

  4. struts2系列(四):struts2国际化的多种方式

    一.struts2国际化原理 根据不同的Locale读取不同的文本. 例如有两个资源文件: 第一个:message_zh_CN.properties 第二个:message_en_US.propert ...

  5. 上传图文{"errcode":40007,"errmsg":"invalid media_id"}解决方案

    {"errcode":40007,"errmsg":"invalid media_id"}解决方案 网上关于这个问题的解决一般是把thumb ...

  6. HBase数据备份及恢复(导入导出)的常用方法

    一.说明 随着HBase在重要的商业系统中应用的大量增加,许多企业需要通过对它们的HBase集群建立健壮的备份和故障恢复机制来保证它们的企业(数据)资产.备份Hbase时的难点是其待备份的数据集可能非 ...

  7. Linux学习(十二)mkpasswd、su、sudo、限制root远程登录

    一.mkpasswd mkpasswd用来生成随机密码字符串.可以指定长度和特殊字符的长度: [root@ruanwenwu01 ~]# mkpasswd O7.alw5Wq [root@ruanwe ...

  8. CS231n 2017 学习笔记01——KNN(K-Nearest Neighbors)

    本博客内容来自 Stanford University CS231N 2017 Lecture 2 - Image Classification 课程官网:http://cs231n.stanford ...

  9. jquery getScript动态加载JS方法改进详解[转载]

    转载自http://www.jb51.net/article/31973.htm 有许多朋友需要使用getScript方法动态加载JS,本文将详细介绍此功能的实现方法     $.getScript( ...

  10. 简单类型对象 String

    简单值不是对象,因此也没有属性方法,因此运行下面代码时   var s1 = “some text”; var s2 = s1.substring(2);   实际上是运行在read模式,字符串的值会 ...