码迷,mamicode.com
首页 > 其他好文 > 详细

MyBatis高级特性

时间:2020-08-15 22:29:43      阅读:58      评论:0      收藏:0      [点我收藏+]

标签:item   equals   动态删除   ram   open   mybatis   div   过程   元素   

动态sql 复用sql语句

    1.定义sql片段
        <sql id="xxx_column">被复用的片段</sql>
    2.引用sql片段
        <include refid="xxx_column"></include>

 

动态sql 简化查询

DAO简化
  将所有可能查询的参数,封装成XxxQuery对象

 

where标签+if标签 动态查询

核心:调用dao方法传入参数不同,决定了sql的条件不同
动态sql:一个sql标签,由于传入参数不同,实际执行的sql语句也不同
        
        <!--where标签代替where关键词-->
        <where>
            <if test="dao方法参数的属性名   表达式判断(且and、或or、逻辑运算符、equals)">
                dao方法参数的属性名 = #{dao方法参数的属性名}
            </if>
            <if test="id != null and !id.equals(‘‘)"></if>
        </where>


update+if标签 动态修改

set标签:
    1.代替set关键字
    2.自动忽略修改列后面多余的  逗号

if标签:
    test="dao方法的参数属性是否有值"
语法:
    <if test="参数属性名 != null ">
        ...修改sql  ,
    </if> 

 

forEach标签 动态删除

接口的方法:
    void delete(@Param("ids")String[] ids);

mapper文件:
    conllection:被遍历的参数值
    item:数组遍历过程中每个元素值的名字
    <delete id="delete" >
        delete from t_student where id in
        <foreach collection="ids" item="id" open="(" separator="," close=")">
            #{id}
        </foreach>
    </delete>

 

rim标签

作用:
    1.可以替代任何关键字(where set)
    2.可以忽略任何特殊字符(and  ,)

 

MyBatis高级特性

标签:item   equals   动态删除   ram   open   mybatis   div   过程   元素   

原文地址:https://www.cnblogs.com/lhl0131/p/13498806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!