>SQL片段

在mapper.xml配置文件中如果存在大量的复杂查询而且查询条件相同,那么则可以抽取成一个SQL片段,在下面的SQL中引用该片段即可。

情景:某个功能模块,多个查询包含相同的相同条件;为了简化开发,使用SQL片段;

入门代码:

mapper配置:

<select id="queryRoleUser" parameterType="hashMap" resultMap="roleUserMap">
SELECT r.*,u.*
FROM role r JOIN user u ON  r.role_code=u.role_code
<!-- 引用sql片段 -->
<include refid="queryUserStatus"/>
</select><!-- 定义sql片段 -->
<sql id="queryUserStatus">
<where>
<if test="roleName!=null and roleName!=''">
and r.role_name=#{roleName}
</if>
<if test="cname!=null and cname!=''">
and u.cname LIKE #{cname};
</if>
</where>
</sql>

Mybatis SQL片段相关推荐

  1. 6.Mybatis中的动态Sql和Sql片段(Mybatis的一个核心)

    视频地址:http://edu.51cto.com/sd/be679 动态Sql是Mybatis的核心,就是对我们的sql语句进行灵活的操作,他可以通过表达式,对sql语句进行判断,然后对其进行灵活的 ...

  2. mybatis学习(39):动态sql片段

    目录结构 com.geyao.mybatis.mapper BlogMapper类 package com.geyao.mybatis.mapper;import java.util.List; im ...

  3. Mybatis源码阅读(一):Mybatis初始化1.3 —— 解析sql片段和sql节点

    *************************************优雅的分割线 ********************************** 分享一波:程序员赚外快-必看的巅峰干货 如 ...

  4. java回顾:MyBatis参数、sql片段、动态sql、高级查询

    目录 一.MyBatis参数 SqlSessiong工具类 1.映射文件配置-入参 1.1 parameterType入参 1.2 单个入参,变量名任意定义: 1.3 多个入参,解决方案: 1.4 p ...

  5. MyBatis总结七:动态sql和sql片段

    开发中,sql拼接很常见,所以说一下动态sql: 1 if 2 chose,when,otherwise 3 where,set 4 foreach 用法解析(现有一张users表 内有id user ...

  6. [mybatis]动态sql_sql_抽取可重用的sql片段

    sql 抽取可重用的sql片段,方便后面引用 1.sql抽取:经常将要查询的列名,或者插入用的列名抽取出来方便引用 2.include来引用已经抽取的sql 3.include还可以自定义一些prop ...

  7. mybatis sql标签_这谁顶得住?Mybatis 十八连环问

    来自:开源中国,作者:祖大俊 链接:https://my.oschina.net/zudajun/blog/747682 1.#{}和${}的区别是什么? 答:${}是Properties文件中的变量 ...

  8. 03_MyBatis基本查询,mapper文件的定义,测试代码的编写,resultMap配置返回值,sql片段配置,select标签标签中的内容介绍,配置使用二级缓存,使用别名的数据类型,条件查询ma

     1 PersonTestMapper.xml中的内容如下: <?xmlversion="1.0"encoding="UTF-8"?> < ...

  9. mybatis sql标签_【1039期】Mybatis面试18问,你想知道的都在这里了!

    1.#{}和${}的区别是什么? 答:${}是Properties文件中的变量占位符,它可以用于标签属性值和sql内部,属于静态文本替换,比如${driver}会被静态替换为com.mysql.jdb ...

最新文章

  1. GMM高斯混合模型学习笔记(EM算法求解)
  2. 回退n帧协议c语言代码,[计算机网络]Ch.3 数据链路层
  3. JDK 11:Java序列化的终结开始了吗?
  4. 计算机模拟专业,2017年数值模拟专业知识题库
  5. c语言链表末尾怎么插入数据,在链表中插入数据!求助!!!
  6. LeetCode(62):不同路径
  7. vb计算机安装教程,windows10系统安装vb6.0图文教程 Win10攻略
  8. Python教学视频(基础班+就业班)
  9. 2022国二计算机office 考试考试秘籍总结大全
  10. 深度学习之 RBF神经网络
  11. 计算机视觉教程7-3:Openpose配置与实践
  12. 稀疏矩阵 存储格式 COO CSR DIA ELL HYB
  13. html基础dw,HTML基础DW使用教程
  14. HBuilder X 无法启动微信开发者工具问题解决方法
  15. 【墨尘】变态心理学(北京大学)
  16. java微信公众号开发一:服务器信息配置
  17. 微信公众号使用:微信公众平台企业类型的微信认证申请流程
  18. 如何做好团队测试建设
  19. ansible批量免密
  20. ios 模拟器如何模拟多点触控

热门文章

  1. Laravel核心解读--Database(一)基础介绍
  2. Kafka 2.8与ZooKeeper正式分手
  3. windows 下安装 elasticsearch 以及 head 管理插件
  4. 创建主机地址 (A) DNS 记录
  5. linux下chkConfig的用法,mysqld开机自启动
  6. 如何在GPT分区上安装WIN7
  7. 勒索病毒恐难暴力破解 国内比特币平台尚买币潮
  8. UVa10881 Piotr's Ants【模拟】
  9. ubuntu 安装五笔
  10. Objective-C之数组