美文网首页
MyBatis 动态sql

MyBatis 动态sql

作者: superNeil | 来源:发表于2020-06-02 18:39 被阅读0次
000.jpg

一、定义

MyBatis 的 强大特性之一无疑是它的动态 sql .

那我们来看看 重点 列举这几个 :

二、动态 SQL if where

​ 这个其实 我们之前在 做 高级查询的时候 就已经 有使用过的了 .

1.需求 : 查询工资大于等于某个值的员工
<select id="queryByMinSalary" resultType="Employee"> 
SELECT id, name, sn, salary, deptId FROM employee 
<if test="minSalary != null">
WHERE salary >= #{minSalary} 
</if> 
</select>

2.需求 : 按照工资范围查询员工

<select id="queryByMinSalaryAndMaxSalary" resultType="Employee">
SELECT id, name, sn, salary, deptId FROM employee 
<where>
<if test="minSalary != null">
AND salary &gt;= #{minSalary} 
</if> 
<if test="maxSalary != null">
AND salary &lt;= #{maxSalary} 
</if> 
</where> 
</select>

三、动态SQL之 set

set 元素会动态前置 SET 关键字,同时也会删掉无关的逗号,若里面条件都不成立,就会去除 SET 关键

字。其用来解决更新时丢失数据的问题。

<update id="update">
    UPDATE employee 
    <set>
        <if test="name != null">
            name = #{name}, 
        </if> 
        <if test="sn != null">
            sn = #{sn}, 
        </if> 
        <if test="salary != null">
            salary = #{salary}, 
        </if> 
        <if test="deptId != null"> 
            deptId = #{deptId},
        </if>
    </set>
        WHERE id = #{id} 
</update>

四、动态SQL之 foreach

动态 SQL 的另外一个常用的操作需求是对一个集合进行遍历,通常是在构建 IN 条件语句的时候,这里

就会使用到 foreach 元素。

1.需求 : 批量地根据员工 id 删除员工。

<delete id="batchDelete">
DELETE FROM employee WHERE id IN 
<!--
collection 遍历数组或集合的 key 或者属性名
open 遍历开始拼接的字符串
index 遍历索引
item 遍历元素
separator 每遍历元素拼接字符串 
close 遍历结束拼接字符串 
-->
<foreach collection="ids" open="(" item="id" separator="," close=")"> #{id} 
</foreach> 
</delete>

相关文章

  • MyBatis动态SQL

    MyBatis 动态SQL 内容 Mybatis动态SQL在XML中支持的几种标签: if chose trim、...

  • MyBatis核心知识点

    (1)Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不? Mybatis动...

  • MyBatis 动态SQL(*.xml)

    原文参考MyBatis 动态SQL MyBatis的动态SQL大大减少了拼接SQL语句时候的各种格式问题,这里摘录...

  • Mybatis动态SQL

    MyBatis Mybatis笔记连载上篇连接MyBatis缓存Mybatis笔记连载下篇连接 动态SQL 动态S...

  • MyBatis的动态SQL与日志Log4J、SQL语句构造器

    一、MyBatis动态SQL 动态 SQL 是 MyBatis 的强大特性之一。如果你使用过 JDBC 或其它类似...

  • MyBatis学习:动态sql

    1.动态sql 动态sql是mybatis中的一个核心,什么是动态sql?动态sql即对sql语句进行灵活操作,通...

  • mybatis的xml文件的标签详解

    Mybatis #{}和${}和区别 mybatis获取方法参数 动态SQL

  • 第八章 动态SQL

    动态SQL中的元素介绍 动态SQL有什么作用 MyBatis提供了对SQL语句动态组装的功能 动态SQL中的元素 ...

  • JavaEE基础知识学习----MyBatis(四)动态SQL

    MyBatis的动态SQL MyBatis 的强大特性之一便是它的动态 SQL。如果你有使用 JDBC 或其它类似...

  • IT 每日一结

    mybatis动态sql 动态sql绝对是mybatis排列前几的闪光点之一。传统代码中的sql语句需要经过多个字...

网友评论

      本文标题:MyBatis 动态sql

      本文链接:https://www.haomeiwen.com/subject/yfdpzhtx.html