Mybatis之动态sql

news/2024/9/28 17:28:51
  1. 当你在业务中有需要通过传过来的条件来进行sql查询的时候,之前的手动拼接既麻烦又容易出错,动态sql就可以根据场景动态的构建查询。

  2. 常用的动态sql标签

  3. if标签

    <select id="selectAllBlog" parameterType= "map" resultType="Blog">  select id,title,text from blog where 1=1    <if test="title != null">        AND title like #{title}   </if>    <if test="text!= null">        AND text like #{text}    </if>
    </select>
    
  4. where+if标签: “where”标签会知道如果它包含的标签中有返回值的话,它就插入一个‘where’。此外,如果标签返回的内容是以AND 或OR 开头的,则它会剔除掉。

    <select id="selectAllBlog" parameterType= "map" resultType="blog">select * from blog<where><if test="title != null">title like concat('%' #{title} '%')</if><if test="text != null">AND text like concat('%' #{text} '%')</if></where>
    </select>
    
  5. set标签

    <update id="updateBlog" parameterType= "map" >update blog<set><if test="title != null">title=#{title},</if><if test="text != null">text=#{text}</if></set>where id=#{id}
    </update>
    
  6. choose标签

    <select id="selectBlogByChoose" resultType="blog" parameterType="map">select * from blog<where><choose><when test="id !='' and id != null">id=#{id}</when><when test="title !='' and title != null">and title=#{title}</when><otherwise>and text=#{text}</otherwise></choose></where></select>
    
  7. sql片段:把某一段简单的sql语句抽取出来,方便之后的代码复用

    <sql id="selectall">select  *  from  blog
    </sql>
    <select id="find" resultType="Student"><include refid="selectall"/>
    </select>
    
  8. foreach标签

    //批量查询
    <select id="findBlog" resultType="blog" parameterType="map"><include refid="selectall"/> where id in<foreach item="ids" collection="array"  open="(" separator="," close=")">#{ids}</foreach>
    </select>
    

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ryyt.cn/news/30241.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈,一经查实,立即删除!

相关文章

m基于FPGA的MPPT最大功率跟踪算法verilog实现,包含testbench

1.算法仿真效果 其中Vivado2019.2仿真结果如下:使用matlab进行显示如下:2.算法涉及理论知识概要在太阳能光伏系统中,最大功率点跟踪(Maximum Power Point Tracking, MPPT)是提高能量转换效率的关键技术之一。爬山法(Hill Climbing Algorithm, HCA)作为最直观和基础的MPP…

standalone运行模式下 应用模式作业部署

应用模式下不会提前创建集群,所以不能调用start-cluster.sh脚本。我们可以使用同样在bin目录下的standalone-job.sh来创建一个JobManager。 1.上传jar包到lib 2.启动jm bin/standalone-job.sh start --job-classname com.huft.flk117.demo.StreamSocketCnt 3.启动tm bin/taskm…

qgroundcontrol开发环境搭建源码编译

qgroundcontrol是一款无人机地面站开源软件,C++/QT开发 在https://github.com/mavlink/qgroundcontrol上就能找到,选择稳定版下载最新的是2.6 下载https://github.com/mavlink/qgroundcontrol/archive/Stable_V2.6.zip QT的对应版本 http://download.qt-project.org/official…

诈骗(杀猪盘)网站进行渗透测试

今天朋友突然告诉我,某转买手机被骗了1200块钱,心理一惊,果然不出所料,那我来试试吧。要来了诈骗网站地址,打开是这种:果断收集一下信息:(由于留言骗子返还朋友钱款,暂时给他留点面子,打点马赛克)查看端口,一猜就是宝塔面板搭建开着80,那就访问一下:从官网查找客…

Flutter 开发过程中的配置问题汇总

一、MacOS 上 Flutter 3.19.6 修改 maven 的源 将 Flutter 中的 maven 访问源修改为国内镜像源。 因为目前网上多数教程已经不适用了,找了很久才找到替换方法,故特此记录。 本篇方法参考了此链接。 下面是修改的方法: (1)打开 Flutter 的安装目录/packages/flutter_tools/…

EDAC工具助力检测服务器内存故障

介绍EDAC工具前我们先知道什么是EDAC EDAC(Error Detection And Correction 错误检测与纠正),是Linux系统的错误检测和纠正的框架,它的目的是在linux系统运行过程中,当错误发生时能够发现并且报告出硬件错误。 内存有两种错误类型分别是CE和UE,CE 是 Correctable Error 的…

达梦数据库实现一条sql判断数据是否存在,如存在则修改,不存在,则新增

# 达梦数据库实现一条sql判断数据是否存在,如存在则修改,不存在,则新增 MERGE INTOX.TABLE1 T1USING (SELECT3 as id, 名字 as COLUMN_1, 0 as COLUMN_2FROMDUAL ) T2 ON(T1.id = T2.id)WHEN MATCHED THEN UPDATE SET T1.COLUMN_1 = T2.COLUMN_1,T1.COLUMN_2 = T2.COLUMN_2W…

直接转换windows系统版本

有时候我们可能需要对windows系统的版本进行转换(比如windows家庭版没有Hyper-V,无法安装Linux子系统) 这个时候我们可能需要将它转换为专业版或者其它版本 其实对于windows而言,在你安装系统的那一刻,各个版本之间就可以直接切换方法一: 以管理员身份运行cmd或者Windows…