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  ,)
  • 相关阅读:
    EA教程 (四) SQLHelper类
    详解包含、扩展和泛化
    几种常用的单例模式详解
    我的分层
    EA教程(二)数据库
    软件版本号如何定义
    精解PV操作之信号量
    eclipse连接数据库驱动汇总
    [Leetcode 17] 13 Roman to Integer
    Short term goal for 2013 rest time
  • 原文地址:https://www.cnblogs.com/lhl0131/p/13498806.html
Copyright © 2011-2022 走看看