• MyBatis高级特性


    动态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  ,)
  • 相关阅读:
    mysql的binlog日志格式
    Git的基本使用
    Tomcat安装部署
    [ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (111)]
    云盘的创建及使用
    ntp服务器配置
    如何更改mysql的密码策略?
    Centos6 升级glibc-2.17,解决Requires: libc.so.6(GLIBC_2.14)(64bit)错误解决方法
    Git的基本使用
    UES
  • 原文地址:https://www.cnblogs.com/lhl0131/p/13498806.html
Copyright © 2020-2023  润新知