SQL片段的作用:将重复的SQL语句抽取出来,放到<sql>标签中,可以进行复用。

1.抽取重复的SQL语句

    <sql id="where-title-author"><if test="title!=null">title like concat('%',#{title},'%')</if><if test="author!=null">and author = #{author}</if></sql>

2.在SQL语句中引入SQL片段

<select id="queryBlogIf" resultType="blog" parameterType="map">select * from mybatis.blog<where><include refid="where-title-author"></include></where></select>

注意:最好不要太复杂的语句

不要将<where>和<set>标签放到SQL片段中。

mybatis--SQL片段相关推荐

  1. Mybatis SQL片段

    >SQL片段 在mapper.xml配置文件中如果存在大量的复杂查询而且查询条件相同,那么则可以抽取成一个SQL片段,在下面的SQL中引用该片段即可. 情景:某个功能模块,多个查询包含相同的相同 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

最新文章

  1. JVM内存分配与垃圾回收浅析
  2. 第三次作业-介绍一款原型设计工具
  3. GPU 编程入门到精通(四)之 GPU 程序优化
  4. C++Binomia distribution二项分布的实现算法(附完整源码)
  5. CentOS 7 的 Python2 升级成 Python 3.7
  6. angular——更多按钮的上拉菜单(路由跳转)
  7. 安卓升级鸿蒙,网友实测从安卓升级到鸿蒙2.0:可用内存和机身存储容量都增加了...
  8. Linux DNS视图脑裂的实例操作(四)
  9. Node学习笔记:建立TCP服务器和客户端之间的通信
  10. 哈工大计算机报深圳还是本部,哈工大本部和哈工大深圳哪个比较好?
  11. MySQL 基础一(B站黑马程序员MySQL教程笔记)
  12. python毕业设计作品基于django框架 教室图书馆座位预约系统毕设成品(7)中期检查报告
  13. 使用CMD隐藏文件夹
  14. 新的IcedTea项目
  15. 【TCAX+AVS+MeGui】这里讲讲过气tcax内置特效的制作流程吧
  16. 搭窝---开篇语---爆笑语录
  17. eclipse次行风格的设置
  18. DWC的1000M的MAC自环和PHY自环测试寄存器修改方式
  19. linux 删除文件名带括号的文件
  20. 优盘复制进来为空_U盘问题 复制文件夹到U盘后,再打开就成空的了、

热门文章

  1. 手忙脚乱的年货节从此拜拜,RPA让电商人年终奖一分不丢
  2. [AV1] Palette Intra Prediction
  3. Windows Live ID Delegated Authentication
  4. 【ROS指令汇总rosbag】大全
  5. mysql timestamp 用法_mysql之TIMESTAMP(时间戳)用法详解
  6. 关于C#中flash播放的问题
  7. getopt不能反复使用的问题
  8. 如何度过程序员的菜鸟阶段?
  9. 2023江苏安全员(B证)模拟考试试卷
  10. uniapp-previewImage循环使用的一个小问题