前面几篇博客介绍的都是单表映射的一些操作,然而在我们的实际项目中往往是用到多表映射。至于多表映射的关键要用到mybitis的association来加以实现。
          这篇介绍的是多表中的多对一表关联查询
          先做一些准备工作
  创建两张表:一张是用户,一张是用户所对应的移动手机,一户用户可以有部移动手机。
   
     这是用户t_user表
          

这是移动电话t_mobile表
        

创建表对应的JavaBean对象

User对象

[java] view plaincopy
  1. package com.jefry;
  2. public class User {
  3. private int id;
  4. private String userName;
  5. private String password;
  6. public String getUserName() {
  7. return userName;
  8. }
  9. public void setUserName(String userName) {
  10. this.userName = userName;
  11. }
  12. public String getPassword() {
  13. return password;
  14. }
  15. public void setPassword(String password) {
  16. this.password = password;
  17. }
  18. public int getId() {
  19. return id;
  20. }
  21. public void setId(int id) {
  22. this.id = id;
  23. }
  24. }

Mobile对象:

[java] view plaincopy
  1. package com.jefry;
  2. public class Mobile {
  3. private int id;
  4. private String telnumber;
  5. private User user;
  6. public int getId() {
  7. return id;
  8. }
  9. public void setId(int id) {
  10. this.id = id;
  11. }
  12. public String getTelnumber() {
  13. return telnumber;
  14. }
  15. public void setTelnumber(String telnumber) {
  16. this.telnumber = telnumber;
  17. }
  18. public User getUser() {
  19. return user;
  20. }
  21. public void setUser(User user) {
  22. this.user = user;
  23. }
  24. }

修改configure文件对象别名:

[html] view plaincopy
  1. <typeAliases>
  2. <typeAlias alias="User" type="com.jefry.User"/>
  3. <typeAlias alias="Mobile" type="com.jefry.Mobile"/>
  4. </typeAliases>

修改表映射文件

[html] view plaincopy
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="mobile">
  6. <resultMap id="userResultMap" type="Mobile">
  7. <id property="id" column="id"/>
  8. <result property="telnumber" column="telnumber"/>
  9. <association property="user" javaType="User">
  10. <id property="id" column="id"/>
  11. <result property="userName" column="name"/>
  12. <result property="password" column="pass"/>
  13. </association>
  14. </resultMap>
  15. <!--多表查询操作-->
  16. <select id="selectMobile" parameterType="int"  resultMap="userResultMap" >
  17. <!--分别为mobile的主键id与user的主键id赋值别名,避免因为两个表字段名称相同而注入到对应对象名称冲突-->
  18. select m.id m_id,m.telnumber,u.id u_id,u.name,u.pass from t_mobile m,t_user u where m.userid = u.id and m.id = #{id}
  19. </select>
  20. </mapper>

转载于:https://www.cnblogs.com/shijiaoyun/p/5157536.html

MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)相关推荐

  1. MyBitis(iBitis)系列随笔之五:多表(一对多关联查询)

    MyBitis(iBitis)系列随笔之一:MyBitis入门实例 MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM) MyBitis(iBitis ...

  2. MyBitis(iBitis)系列随笔之二:类型别名(typeAliases)与表-对象映射(ORM)

    类型别名(typeAliases):      作用:通过一个简单的别名来表示一个冗长的类型,这样可以降低复杂度.     类型别名标签typeAliases中可以包含多个typeAlias,如下 [ ...

  3. MyBitis(iBitis)系列随笔之六:mybitis与spring集成

    目前Spring官方还没有出整合Mybatis的特性,但是mybitis比较给力,开发了一个mybatis-spring插件,达到与Spring的完美整合目的. 在与Spring集成前,一方面我们需要 ...

  4. mysql数据库实验查询_MySQL数据库表数据的查询操作实验

    实验3.MySQL数据库表数据的查询操作实验(1) 一.实验目的 掌握SELECT 语句的基本语法格式. 掌握SELECT 语句的执行方法. 掌握SELECT 语句的 GROUP BY 和 ORDER ...

  5. MySQL学习-表记录的查询操作

    数据中最常见的操作就是查询操作,也可以称作检索操作,目的是从表中检索出所需要的数据. select 语句: select 字段列表 from 表名或视图名 [where 条件表达式] [group b ...

  6. 【MySQL连表多对多】操作举例之【学生选课】

    一.功能介绍及准备工作: 1.学生表 建一个学生信息的表,包含学生的姓名和主键(编号) 2.课程表 建一个课程信息的表,包含课程名和主键(编号) 3.学生选课表 建一个学生与课程关系的表,包括学生编号 ...

  7. 对emp表的一些查询操作

    查看EMP表中部门号为10的员工的姓名,职位,参加工作时间,工资. SELECT ename,job,hiredate,sal FROM emp WHERE deptno =10; 计算每个员工的年薪 ...

  8. mysql查一个表3到5行的数据类型_MySQL入门(三) 数据库表的查询操作【重要】

    序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...

  9. mysql水果表查询_最全MySQL数据库表的查询操作

    序言 本节比较重要,对数据表数据进行查询操作,其中可能大家不熟悉的就对于INNER JOIN(内连接).LEFT JOIN(左连接).RIGHT JOIN(右连接)等一些复杂查询. 通过本节的学习,可 ...

  10. Scott的ASP.net MVC框架系列文章之四:处理表单数据(2)

    前几周我发表了一系列文章介绍我们正在研究的ASP.NET MVC框架.ASP.NET MVC框架为你提供了一种新的开发Web应用程序的途径,这种途径可以让应用程序变得更加层次清晰,而且更加有利于对代码 ...

最新文章

  1. canvas中文显示乱码 html5_浅析HTML5 Canvas的几种中文字体缩小方案
  2. 人脸识别常用数据集大全
  3. 计算机主机前耳机没声音,Win10电脑机箱前面板耳机没声音如何解决【解决方法】...
  4. 【c语言】打印出100以内奇数
  5. 快速排序c语言实现,快速排序——C语言实现
  6. 一级计算机考试电子表格排序筛选,重新应用Excel排序和筛选或清除筛选
  7. 案例|工业物联网解决方案·智慧钢厂高性能安全数采
  8. win10专业版 原版安装教程
  9. 网页特效--图片淡入淡出效果
  10. 免费的网课API接口附加题库
  11. 罗克韦尔AB PLC安装Studio5000提示未安装Microsoft .NET Framework 3.5的解决方法
  12. 计算机专业120分,【哈尔滨工业大学,专业课120分】跟你唠点真情实感。
  13. 数据分析-Excel基础操作
  14. 抖音运营从内容开始做起,抖音内容创作
  15. python打印日历小项目
  16. 移动端图片预览插件-fly-zomm-img.min.js
  17. 小米公司在互联网的地位怎么样
  18. CryEngine5.3(学习)
  19. android平板灵敏度,和平精英iPad最稳灵敏度怎么设置
  20. python画spc控制图_SPC系列8:如何选择计数型数据的SPC控制图?

热门文章

  1. Assets.car 解压工具 cartool 使用报错 segmentation fault cartool 解决方案
  2. NOIP2018初赛 解题报告
  3. 【转】如何在windows平台开发OpenGL程序使用OpenGL1.2或更高版本
  4. Data Structures(Chapter 3 of The Algorithm Design Manual)
  5. spring,springmvc,mybatis整合ssm框架出现ORA-02289:序列不存在问题
  6. UiAutomator2.0 和1.x 的区别
  7. FLEX中Tree默认展开全部节点
  8. XMPP作为一个工具的意义
  9. vs2005 生成安装包的时候提示“不可恢复的生成错误”
  10. python学习笔记 day42 对数据表的操作---增删改查