zoukankan      html  css  js  c++  java
  • 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  ,)
  • 相关阅读:
    关于蜂窝物联技术 NBIoT 的一些观点
    SSL安全证书-概念解析
    使用 openssl 生成证书
    spring-实现配置文件读取
    spring技术核心概念纪要
    maven项目修改java编译版本的方式
    关于一个双机热备的问题
    关于Java的软引用及弱引用
    MQTT服务器搭建-mosquitto1.4.4安装指南
    hive 限制本地内存使用量
  • 原文地址:https://www.cnblogs.com/lhl0131/p/13498806.html
Copyright © 2011-2022 走看看