使用MyBatis的resultMap高级查询时常用的方式总结

时间:2022-03-24 02:09:20

以下内容已经通过楼主测试, 从pd设计数据库到测试完成, 之前楼主也没有过Mybatis 使用resultMap觉得有点乱,最近抽出时间总结了一下也算对MyBatis的resultMap进行一次系统的学习, 希望与大家分享学习心得, 有说的不对的地方请大家帮指教

下面是PD设计的几张数据库模型

aaarticlea/png;base64,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ICAghhuQeyAgICAghhuQeyAgICAghhuQeyAgICAghhuQeyAgICAghhuQeyAgICAghhuQeyAgICAghhso94gWAfga7a+RjSQICAgI2SHhnj9///Ln11///Pr5z6+f/vzt4x+/9f7xpfePLx/++PL+jy/vfv+15/df3/7+69vfP3d//fzm6+eur59ef/3U+fVj59ePHV9727/2tn3tbf36oeW3D82/vW/+7X3Tb+/Ev71r/PKu4UtP/Zee+i9v6768rf3SXfOlu/pLd9WX7spf31T++ubVr29e/vrmxa9dLz53Pf/8+tnn188+dz793PnL584nnzt+/tzx+HP740/tjz61PfzU9uBT20+fWu9/bL3/saXiY0v5x+Z7H5vLeptLe5tKeptKepvu9oqLe8VFveLCXnFBb+OdDw35Hxpuf6jP+1B/60Pdzfd1N97XXn9fm/u+5tr7mqvvaq68q778rvrSu6qLPVUXeqpyeirP97zK7nl1rudlVs/LzJ4XGT0v0nuep719nvr2WcrbZ8lvn559+zSp+2li9y9nun9J6H4S/+ZJ3JufT7/5+dSbn0++eXyi6/HxrkfHuh4d7XoY2/XwyOsHh1//dOj1TzGv7x/svH+g8/7+zop9nRV7O8v3dJbv7ry3q/NedOe9qM6yyI6ynR2lER2lOzpKwjtKRO0l29vvhrXfDW0vDmkrCm4rCmor3NZWuLWtYEtrQWDrnc2tdwJa72xqzfdvyfdrub0Rcg8EBMQoAoF7vn7687dPf/z2kUw5GOt87v5dQjmvUcr5iFNO628fWlDKeY9TToOEct4ilFP9pbuKiXIQ1sEp58nnjp9RymnHKecnCeW0IJRT1ttUilJOE045hdIopxannCvvqi+/q8JYp/J8T6VUynmGU05i9y9nup8grCOVch4cev1TzOufDr6WUM4+lHLKmSinlEo57cU0yimgUk7Lbd+W2z4teRsg90BAQIwiSLjnj99wynkvoZxfEcp58/VTF41y2lDK+YBTjvjLu0aUcnpwyiEedBDKeclEOb+glNPx+DNKOQ8/tT1AKacVp5x7NMrBWKcRO+jU3/5Qn4dSTh1OOdfe1VxFKQc/6FSSDzpEynlOpJwklHIoB53HCOsc63p0tOsRI+Uc6KxgOugglFMmhXKC2wqD2gq3tRUQDzoY5eTjlOPTkreh5db6llvekHsg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nwJ9qPbxqRcO0u9XaHEgfQbCHODf//z13//85d///Pnfv338928//fvXn/7164//+uXDv355/69f3v3rl7f//Hnwnz8P/vPnN//8+Pq3j69++/jyt59e/PbTwG8/Dvz24/PfPjz77cPT3z48+e19/6/vH//67vGv7/p+fdv7y9tHv7zt+WWw+5dB3i9vun550/XL685fXnf88rr9l9dtP796+POrBz+/evDzy/sfX7Z+fNH68cW9jy/ufhy483Hgzsfntz8+/+Hjs1sfn9386dmNn55+/9PT73968t2PT67/2N/yY3/zj/3f/vj42ofHTR/6mj70Xf3Qd+VD3+UPvY0fei996G348Oji+54L73vq33eff9997j3v7DveN++6zrzrqnvXefpt56m3nSffdpx423H8bfuxwfbawbaawbajgw+rBx8eGXxQNXi/cvB+xWBr2ZuFHtuUAAAgAElEQVTW0jetJW/ucd/cO/zmbvHru8Wv7xS9vnPo9Z3C17c5r24XvPrh4Ksf9r+6te/lrb0vb+55eXP3yxu7Xt7Y+eL7HS++y3/xXd6L69tfXM8duL5toGXrQMuWgebNA805A99uGvg2e+DbrIFrmc+vZTxvYj9v2vj8avrzq9izq2nPrqQ+u5Ii67HjC6sRe5BkCC0OpM9AmAMoSJ1/DhN1XqpGnWu/I+rcEqXO98NInf4Lq/ovrETsQZIh8cXxyZt09KHaxydZPSMmzAH+/dvH4aEOTxXqPB8W6rxTlDrlotQ5LIU6B2RR5ztlqbNBEeo8uRDff2Flf31cf32sxi9LJHVEwR4hZ0P9au8TVPugas4GXuo/fHx26ydBtX/305Prgmp/zHc28FK/8qGXrPZHZLV317/vPk+UOu/Mu666d114qZ9623HybceJt+38aj862EaW+oPKwfsVg/fLiT3mvZI397hEqd+lLHW+s7H75U1ppb5toGUrUerNcks9FW0w//Of/2AOILEO36pAnV/lU+ehKtR5IkmdiprDFR/6LtcUb/7Qe+lD76ZI8KmRpA7H0y6VI406N5NM7JJ2/m6oI2cpClOn/3xs//kVGr8skdQRFXsIZ+NHKuq8+efPrwk//Sd+tT//7Ue81J/+9v7JrwLq4KVOUgcv9Tf8Um//+RWfOvdJ6tz7+OLexwFh6uClfvOnpzfwUv9JpNS/pdpg4tQZjg2m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" alt="" />

先说下表吧 多对多 采用 传统而经典的 用户角色表,并没有采用当今流行的联合主键方式 而是将 用户表_id 和 角色表_id 进行Unique

详情参见http://www.cnblogs.com/YingYue/p/3983611.html

,   单项一对多采用 班级学生表 (一个班级有多个学生, 一个学生只能在一个班级, 大学除外否则就是多对多了, 哈哈)

Mybatis的resultMap操作多表的方式 大致如下几种方式

  方式一: 在resultMap中指定其他表的列名用column指向其他表的column同时在当前表对应的实体类中添加一个标识字段

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="UserMapper" >
<resultMap id="BaseResultMap" type="entity.User" >
<id column="ID" property="id" jdbcType="VARCHAR" />
<result column="USER_NAME" property="userName" jdbcType="VARCHAR" />
<result column="PASSWORD" property="password" jdbcType="VARCHAR" />

  <!-- USER_ID这个列USER表中并不存在, 这个列存在于USER_ROLE中 通过flag指向USER_ROLE的USER_ID列 -->
  <result column="USER_ID" property="flag" jdbcType="VARCHAR" />
</resultMap>
<!-- 查询用户带有的角色 -->
<select id="selectUserOfRole" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
*
from user u left join user_role ur on u.id = ur.user_id
<if test="id != null">
where ID = #{id,jdbcType=VARCHAR}
</if>
<if test="userName != null">
where USER_NAME = #{userName,jdbcType=VARCHAR}
</if>
</select>
</mapper>

java

package entity;

public class User {
private String id; private String userName; private String password;
//这个就是在标示字段, 数据库中并不存在, 而是通过 USER_ID 指向 USER_ROLE的USER_ID列
private String flag;     public String getFlag() {
        return flag;
    }     public void setFlag(String flag) {
        this.flag = flag;
    } public String getId() {
return id;
} public void setId(String id) {
this.id = id == null ? null : id.trim();
} public String getUserName() {
return userName;
} public void setUserName(String userName) {
this.userName = userName == null ? null : userName.trim();
} public String getPassword() {
return password;
} public void setPassword(String password) {
this.password = password == null ? null : password.trim();
}
}

方式二:

使用MyBatis的resultMap高级查询时常用的方式总结的更多相关文章

  1. mybatis中的高级查询

    Mybatis作为一个ORM框架,肯定是支持sql高级查询的. 下面的一个案例来为大家详细讲解mybatis中的高级查询. 案例说明: 此案例的业务关系是用户,订单,订单详情与商品之间的关系. 以订单 ...

  2. Mybatis使用MySQL模糊查询时输入中文检索不到结果怎么办--转自http&colon;&sol;&sol;www&period;jb51&period;net&sol;article&sol;88236&period;htm

    这篇文章主要介绍了Mybatis使用MySQL模糊查询时输入中文检索不到结果的解决办法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下   项目开发中,在做Mybatis动态查询时,遇到了 ...

  3. SQL数据库— &lt&semi;3&gt&semi;高级查询、常用函数 --摘录网络

    SQL Server T-SQL高级查询 高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student; --all 查询所有 ...

  4. SpringBoot集成Mybatis实现多表查询的两种方式&lpar;基于xml&rpar;

     下面将在用户和账户进行一对一查询的基础上进行介绍SpringBoot集成Mybatis实现多表查询的基于xml的两种方式.   首先我们先创建两个数据库表,分别是user用户表和account账户表 ...

  5. MyBatis&lpar;四&rpar;:mybatis中使用in查询时的注意事项

    准备工作 1)创建测试表jobitem CREATE TABLE "jobitem" ( "id" ) NOT NULL AUTO_INCREMENT COMM ...

  6. mybatis sql in 查询(mybatis sql语句传入参数是list)mybatis中使用in查询时in怎么接收值

    1.in查询条件是list时 <select id="getMultiMomentsCommentsCounts" resultType="int"&gt ...

  7. mybatis中使用in查询时的注意事项

    1. 当查询的参数只有一个时 findByIds(List<Long> ids)  1.a 如果参数的类型是List, 则在使用时,collection属性要必须指定为 list < ...

  8. MyBatis做动态模糊查询时&comma;like后面要不要加单引号??

    做项目遇到了个奇怪的问题,项目里面要对商品.账户.进行分别的多条件查询,于是我就采用动态多条件分页查询,起初在做账户部分的时候Mybatis是这样写的 <!-- 动态多条件分页查询 --> ...

  9. 黑马Mybatis day3 多表查询 1&period;xml配置方式 2&period;注解方式

    package com.itheima.mozq; import com.itheima.domain.Order; import com.itheima.mapper.OrderMapper; im ...

随机推荐

  1. android ptl

    Gerrit android update sdk --no-uiadb logcat MyActivity:* *:S Connecting adb over Wi-Fiadb tcpip 5555 ...

  2. &period;NET架构师技能体系

    .NET架构师应该掌握什么样的技术?其实这个问题很简单,去看看招聘.NET架构师的公司的职位要求就知道了.比如:http://www.cnblogs.com/guwei4037/p/5615471.h ...

  3. 我摘录的js代码

    1.修改样式 document.getElementByIdx( "div1").style.display = "none"; 2.鼠标悬停图标变小手 sty ...

  4. Eclipse ARM IDE 开发环境

    一.Eclipse Eclipse的本身只是一个框架平台,但是众多插件的支持,使得Eclipse拥有较好的灵活性. 二.CDT CDT是Eclipse用于扩展Eclipse支持C/C++开发的插件. ...

  5. &lpar;转&rpar;Spring中Singleton模式的线程安全

    不知道哪里的文章,总结性还是比较好的.但是代码凌乱,有的还没有图.如果找到原文了可以进行替换! spring中的单例 spring中管理的bean实例默认情况下是单例的[sigleton类型],就还有 ...

  6. Gradle构建多模块项目

    通常我在使用Maven构建项目的时候是将应用项目划分为多个更小的模块. Gradle 项目也拥有多于一个组件,我们也将其称之为多项目构建(multi-project build). 我们首先创建一个多 ...

  7. php获取数据库中数据

    <?php header("Content-type:text/html;charset=utf-8");//字符编码设置 $servername = "local ...

  8. C&plus;&plus; primer ch6 函数基础-1

    1.形参和实参:编译器并没有规定实参的求值顺序. 类似下面的代码,其行为是未定义的: ; printf("%d %d\n",++i,++i); 2.变量的初始化: 如果内置类型的变 ...

  9. OOM问题定位方法

    1. 背景 线上内存OOM问题是最难定位的问题,最常见的原因: (1)本身资源不够 (2)申请的太多 (3)资源耗尽 某服务器上部署了Java服务,出现OutOfMemoryError,请问有可能是什 ...

  10. 20155337 《Java程序设计》实验一(Java开发环境的熟悉)实验报告

    20155337 <Java程序设计>实验一(Java开发环境的熟悉)实验报告 一.实验内容及步骤 (一)使用JDK编译.运行简单的java程序 ·命令行下的程序开发 我在windows下 ...