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

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”对象中。

最新文章

  1. Websocket通讯简析
  2. Texture tiling and swizzling
  3. 《The Evolution of Lua》读书笔记 1
  4. creature_template
  5. 转载 Appstore 上传被拒原因及解释
  6. [改善Java代码]动态加载不适合数组
  7. 了解SOA是什么!
  8. Object -C 数组 -- 笔记
  9. HDU 1026 Ignatius and the Princess I(BFS+优先队列)
  10. Convert Sorted Array to Balanced Binary Search Tree (BST)
  11. Directx11学习笔记【十一】 画一个简单的三角形--effect框架的使用
  12. 配置suricata
  13. 如何用CSS快速布局(一)—— 布局元素详细
  14. hushset的实现原理
  15. 00002、div的文字垂直居中与背景的渐变
  16. Spring Boot 整合 rabbitmq
  17. sass基本用法
  18. ThinkPHP 数据库操作(二) : 增删改查
  19. MapReduce实现Apriori算法
  20. invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun

热门文章

  1. openwrt下 samba设置
  2. Ubuntu安装Flash视频插件
  3. 用 Eclipse 搭建一个简单的 Maven spring mybatis 项目(包含测试用例)
  4. 23种设计模式JAVA 实现目录总结
  5. JqueryMobile基础之创建页面
  6. mysql安装教程以及配置快捷方式
  7. input输入框校验,字母,汉字,数字等
  8. Linux系统用户管理
  9. LeetCode 414. Third Maximum Number (第三大的数)
  10. 日志管理之 Docker logs - 每天5分钟玩转 Docker 容器技术(87)