MyBatis动态拼接SQL

2023-11-06

通过使用MyBatis提供的标签方法可以实现动态SQL拼接

1if标签

<include refid="temp_sql"></include>这里代表select * from t_user

以上sql语句表示,如果money不为空或者money不是空字符串并且大于1000输出结果,否则输出查询所有

<select id="selectByMoney" resultType="demo.entity.User">
        <include refid="temp_sql"></include>
        <where>
        <if test="money!=null and money!=''">
            and money>1000
        </if>
        </where>
    </select>

2where标签

<select id="selectByMoney" resultType="demo.entity.User">
        <include refid="temp_sql"></include>
        <where>
        <if test="money!=null and money!=''">
            and money>1000
        </if>
        </where>
    </select>

where标签的作用是可以自动处理掉第一个and(可以参考if标ids为QueryVO对象的属性,属性的类型为List<Integer>。foreach标签签 

3foreach标签通过POJO传递List集合

 这里foreach相当于字符串拼接,但是不同的是open代表开始,item为里面放的内容,separaton代表以什么东西来分隔,close代表关闭

 <select id="selectByids" resultType="demo.entity.User">
        <include refid="temp_sql"></include>
        <where>
            <foreach collection="ids" open="and id in(" item="id" separator="," close=")">
                #{id}
            </foreach>
        </where>
    </select>

 4sql标签

将sql语句中放入<sql>标签中,可以除去繁琐的代码过程,下面可以调用 

5sql查询标签封装resultType(实体类路径)

 将相关配置放入application.yml文件中加入

type-aliases-package: demo.entity

后面黄色方框内容为路径,对应为实体类第一行package 

这样 resultType(实体类路径)就只写类名就行

如图所示 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MyBatis动态拼接SQL 的相关文章

随机推荐

  • 三种socket超时方法

    文章目录 概述 通过alarm定时器实现 通过select实现 通过SO RCVTIMEO和SO SNDTIMEO实现 概述 socket超时有三种处理办法 使用alarm定时器 设置一定的超时时间 通过产生SIGALRM中断信号实现soc
  • qt creator编译qt工程时报错:undefined reference to

    qt creator编译qt工程时报错 undefined reference to qt creator编译qt工程时报错 该错误指向了本地文件 且经过调研知道 该类错误一般都是链接问题 仔细查看一下pro和pri文件 发现SystemL
  • LeetCode 704. 二分查找 27. 移除元素

    文章目录 前言 LeetCode 704 二分查找 1 题目 2 思路 3 代码 LeetCode 27 移除元素 1 题目 2 思路 3 代码 总结 前言 为了巩固所学的知识 作者尝试着开始发布一些学习笔记类的博客 方便日后回顾 当然 如
  • 【Flutter 问题系列第 72 篇】在 Flutter 中使用 Camera 插件拍的图片被拉伸问题的解决方案

    这是 Flutter 问题系列第 72 篇 如果觉得有用的话 欢迎关注专栏 Flutter SDK 2 5 0 Dart SDK 2 14 Android Studio 2021 2 1 Pathc 1 一 问题描述 项目中要自定义相机页
  • C++之仿函数

    最近再看STL源码的时候看到里面的实现用了大量的仿函数 然后上网搜集了一些关于仿函数的知识 仿函数 Functor 又称为函数对象 Function Object 是一个能行使函数功能的类 仿函数的语法几乎和我们普通的函数调用一样 不过作为
  • 网络编程学习:UDP发送消息new String(packet.getData(),0,packet.getLength())报错

    最近鄙人在使用IDEA学习网络编程的UDP消息发送时 遇到了以下的报错提醒 在使用IDEA时 为了方便我们习惯性的设置了自动导包 com sun org apache xpath internal operations String 和 j
  • Swift的二分法查找实践

    Swift的二分法查找实践 Swift的二分法查找实践 在这篇教程中我们会使用计算机科学里一个基础的算法 二分法查找 binary search 我们也会实现一个二分法查找的项目 快速自动匹配 介绍 在一个数组里查找某个元素 最直接的方法是
  • Cocos Shader实现HSL和RGB颜色模型

    HSL和RGB是两种常见的颜色模型 被广泛应用于计算机图形学 数字图像处理 Web设计等领域 在进行颜色处理时 经常需要将HSL和RGB相互转换 本demo演示如何通过Cocos Creator 3 7游戏引擎 用HSL模型来调节图片颜色
  • PDU会话建立流程(8)-SM Policy Association的建立

    相关文章会在公众号同步更新 公众号 5G通信大家学 持续更新的相关5G内容都是直接根据3GPP整理 保证更新内容的准确性 避免通过二手 甚至多手的资料 以讹传讹误导网友 在介绍完流程详解后 会整理专题内容 比如切片 服务发现 QoS流端到端
  • JPBM4.4基础及数据库说明

    JPBM4 4基础及数据库说明 对jBPM4 4数据库的几张表简单介绍 A 资源库和运行时表结构 JBPM4 DEPLOYMENT 流程定义表 JBPM4 DEPLOYPROP 流程定义属性表 JBPM4 EXECUTION 流程实例表 主
  • nacos--基础--2.5--部署--集群--传统

    nacos 基础 2 5 部署 集群 传统 前提 使用hd用户登陆 完成基础环境搭建 https blog csdn net zhou920786312 article details 118212302 1 机器 IP 端口 备注 192
  • 云计算是什么

    博客主页 微笑的段嘉许博客主页 欢迎关注 点赞 收藏 留言 本文由微笑的段嘉许原创 51CTO首发时间 2023年2月1日 坚持和努力一定能换来诗与远方 作者水平很有限 如果发现错误 一定要及时告知作者哦 感谢感谢 不要偷走我小火车哦 文章
  • text11

    word 剪切板 ul li span style font family none background color rgb 255 255 255 span li li span style font family none backg
  • 比较编译技术--Java 代码的静态编译和动态编译中的问题

    本文是关于实时 Java 的 系列文章 共 5 部分 的第二篇 考察了 Java 语言的本地代码编译所涉及的一些问题 单独使用动态 即时 编译或静态 提前 编译都不能满足所有 Java 应用程序的需求 作者在各种执行环境中对这两种编译技术进
  • Linux命令_awk & 字符串过滤

    前言 被称为 Linux 文本操作三剑客之一的 awk 不但可以处理复杂文件输出 更是一门编程语言 支持对文本每行每列精确读出 格式化输出 正则匹配 if 判断 数组 循环 目录 1 语法 1 1 选项参数 1 2 内置变量 1 3 运算符
  • Integer.parseInt(s)与Integer.valueOf(s)的区别详解

    一 Integer parseInt s 用法 String s1 1000 String s2 1000 int n1 Integer parseInt s1 int n2 Integer parseInt s2 if n1 n2 Sys
  • Pycharm一复制就出现光标变成黑块,无法编辑

    光标变黑块是因为输入方式变成了改写方式 INSERT可以切换插入 改写模式 大多笔记本上是INS键 在键盘上 外接键盘一般是Insert键 但有时光按insert也不行 试试下面这个方法 file gt settings gt Plugin
  • 博客记录

    文章目录 一 3d点云 1 激光SLAM 1 从零开始做自动驾驶定位 2 点云匹配定位 1 NDT 二 编程 1 CMakeLists 三 Github 1 自动驾驶相关 四 Markdown 1 emoji 用来记录一下自己在学习的过程中
  • linux下文件的访问时间、修改时间和改变时间

    参考 linux下文件的创建时间 访问时间 修改时间和改变时间 刀刀的专栏 博客频道 CSDN NET http blog csdn net zyz511919766 article details 14452027 归纳一下 linux下
  • MyBatis动态拼接SQL

    通过使用MyBatis提供的标签方法可以实现动态SQL拼接 1 if标签