当前位置: 首页 > article >正文

Mybatis-18.动态SQL-sqlinclude

一.sql&include

为什么需要<sql>和<include>标签? 这是因为这些代码是重复的,能够消除重复会提高代码的可读性和效率。

那我们就可以使用<sql>标签对这些片段进行一个抽取。然后在原来抽取的地方再将这个<sql>片段引用进来。

二.代码

<?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="com.gjw.mapper.EmpMapper">
    <sql id="commonSelect">
        select id, username, password, name, gender, image, job, entrydate, dept_id, create_time, update_time
        from emp
    </sql>
    <!-- resultType:单条记录所封装的类型 -->
    <select id="select" resultType="com.gjw.pojo.Emp">
        <include refid="commonSelect"></include>
        <where>
            <if test="name != null" >
                name like concat('%', #{name}, '%')
            </if>
            <if test="gender != null">
                and gender = #{gender}
            </if>
            <if test="begin != null and end != null">
                and entrydate between #{begin} and #{end}
            </if>
        </where>
        order by update_time desc
    </select>
</mapper>

这样就完成了SQL片段的抽取与注入。 

三.动态SQL总结


http://www.kler.cn/a/373074.html

相关文章:

  • 突破挑战,创新前行 | 生信科技SOLIDWORKS 2025新品发布会·合肥站精彩回顾
  • python之数据结构与算法(数据结构篇)-- 集合
  • gitblit 学习-hook功能
  • 100种算法【Python版】第16篇——Rabin-Karp算法
  • 【C/C++】结构体的定义
  • 基于springboot+vue实现的公考知识学习平台 (源码+L文+ppt)4-103
  • 【从零开始的LeetCode-算法】3216. 交换后字典序最小的字符串
  • MaskGCT,零样本语音克隆,TTS语音合成,多语言支持(WIN/MAC)
  • mac|maven项目在idea中连接redis
  • 智能合约分享
  • CSS浮雕效果
  • C++: String容器的使用和实现
  • 【MySQL】日志
  • QT中使用图表之QChart概述
  • 排查公网NAT网关中高流量ECS实例
  • 想要分离人声,来试试看这几个方法
  • 使用PE工具箱进行系统安装
  • 企业新闻及产品宣传稿怎么写?有哪些商业财经类报纸杂志或媒体发布?
  • 串口扫盲TTL,TX/TR/GND
  • 统计数据集的TXT、XML及JSON标注文件中各类别/每个标签的数量
  • threejs开源实例-粒子地球
  • ElasticSearch 入门需要了解的概念
  • 【模型学习之路】手写+分析Transformer
  • 2024第二次随堂测验参考答案
  • 【C++】——高效构建与优化二叉搜索树
  • docker容器和宿主机端口映射