博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)
阅读量:5777 次
发布时间:2019-06-18

本文共 2002 字,大约阅读时间需要 6 分钟。

 

          前面几篇博客介绍的都是单表映射的一些操作,然而在我们的实际项目中往往是用到多表映射。至于多表映射的关键要用到mybitis的association来加以实现。

          这篇介绍的是多表中的多对一表关联查询
          先做一些准备工作
  创建两张表:一张是用户,一张是用户所对应的移动手机,一户用户可以有部移动手机。
   
     这是用户t_user表
                             

     这是移动电话t_mobile表

        

创建表对应的JavaBean对象

User对象

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

Mobile对象:

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

修改configure文件对象别名:

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

修改表映射文件

[html]   
 
  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.     <!--多表查询操作-->  
  17.     <select id="selectMobile" parameterType="int"  resultMap="userResultMap" >  
  18.         <!--分别为mobile的主键id与user的主键id赋值别名,避免因为两个表字段名称相同而注入到对应对象名称冲突-->  
  19.         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}   
  20.     </select>  
  21. </mapper>  

转载地址:http://tfuyx.baihongyu.com/

你可能感兴趣的文章
oracle的substr函数的用法
查看>>
Hadoop HDFS编程 API入门系列之路径过滤上传多个文件到HDFS(二)
查看>>
Nginx反向代理,负载均衡,redis session共享,keepalived高可用
查看>>
CentOS7 yum 安装git
查看>>
三元表达式之理解/jquery源代码分析之$.inArray实现
查看>>
STM32 mdk软件仿真时过不去时钟的问题
查看>>
Spark Streaming概念学习系列之Spark Streaming容错
查看>>
单例模式
查看>>
用友网络陈强兵:企业互联网需解决五大问题
查看>>
SMA推出Powerwall兼容Sunny Boy Storage逆变器
查看>>
云路由 vyatta 体验(二)NAT
查看>>
Python version 2.7 required, which was not foun...
查看>>
centos7.3 下安装 composer,解决Failed to decode zlib stream错误
查看>>
Git 常用命令
查看>>
在Postgres 数据库中生成36位的UUID代码
查看>>
小黑小波比.功能测试登录用户
查看>>
Java enum用法详解
查看>>
去云端的多条途径
查看>>
Docker容器从一知半解到入门
查看>>
关于“方法参数”
查看>>