zoukankan      html  css  js  c++  java
  • MyBitis(iBitis)系列随笔之四:多表(多对一查询操作)

     

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

         这是移动电话t_mobile表
            

    创建表对应的JavaBean对象

    User对象

    [java] view plain copy
     
    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] view plain copy
     
    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] view plain copy
     
    1. <typeAliases>  
    2.         <typeAlias alias="User" type="com.jefry.User"/>  
    3.         <typeAlias alias="Mobile" type="com.jefry.Mobile"/>  
    4. </typeAliases>  



    修改表映射文件

    [html] view plain copy
     
    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>  
  • 相关阅读:
    Android UI--自定义ListView(实现下拉刷新+加载更多)
    12306火车票订票网站的一个Bug
    golang中赋值string到array
    Node.js学习(14)----EJS模板引擎
    操作系统
    springMVC学习笔记--初识springMVC
    sqlplus 连接数据库报错SP2-0642: SQL*Plus internal error state 2130, context 0:0:0
    对于事务和同步(并发)的简要理解
    Jsoup入门
    [LeetCode]Single Number
  • 原文地址:https://www.cnblogs.com/shijiaoyun/p/5157536.html
Copyright © 2011-2022 走看看