ToB企服应用市场:ToB评测及商务社交产业平台

标题: day06-动态SQL语句 [打印本页]

作者: 滴水恩情    时间: 2023-2-28 00:24
标题: day06-动态SQL语句
动态SQL语句

1.基本介绍

官方文档 mybatis – MyBatis 3 | 动态 SQL

2.动态SQL-案例演示

2.1if标签

使用动态 SQL 最常见情景是,根据条件,用if标签包含 where 子句的一部分。
例子:要求查询age大于10的所有记录,如果age不大于0,则输出所有记录。
  1. <select id="findMonsterByAge" resultType="Monster" parameterType="Integer">
  2.     SELECT * FROM `monster`
  3.     <if test="age >= 0">
  4.         WHERE `age`> #{age}
  5.     </if>
  6. </select>
复制代码
当方法入参>=0时,底层的sql语句为:

当入参5,并且名字为“牛魔王”的所有记录。如果名字为空,则不拼接带名字的条件,如果id<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
    SELECT * FROM `monster`
    <where>
        <if test="id>=0">
            id > #{id}
        </if>
        <if test="name !=null and name !=''">
            AND `name` = #{name}
        </if>
    </where>
</select>id > #{id}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
    SELECT * FROM `monster`
    <where>
        <if test="id>=0">
            id > #{id}
        </if>
        <if test="name !=null and name !=''">
            AND `name` = #{name}
        </if>
    </where>
</select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
    SELECT * FROM `monster`
    <where>
        <if test="id>=0">
            id > #{id}
        </if>
        <if test="name !=null and name !=''">
            AND `name` = #{name}
        </if>
    </where>
</select>    AND `name` = #{name}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
    SELECT * FROM `monster`
    <where>
        <if test="id>=0">
            id > #{id}
        </if>
        <if test="name !=null and name !=''">
            AND `name` = #{name}
        </if>
    </where>
</select>[/code]如下,当id的值小于0时,会自动去除id子句和name子句前的AND
2.3choose/when/otherwise标签

有时候,我们不想使用所有的条件,而只是想从多个条件中选择一个使用。针对这种情况,MyBatis 提供了 choose 元素,它有点像 Java 中的 switch 语句。
  1. <select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <where>
  4.         <if test="id>=0">
  5.             id > #{id}
  6.         </if>
  7.         <if test="name !=null and name !=''">
  8.             AND `name` = #{name}
  9.         </if>
  10.     </where>
  11. </select>
复制代码
例子:
(1)如果给的name不为空,就按名字查询妖怪
(2)如果指定的id>0,就按id来查询妖怪
(3)如果前面两个添加都不满足,就默认查询salary>100的
  1.     SELECT * FROM `monster`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <where>
  4.         <if test="id>=0">
  5.             id > #{id}
  6.         </if>
  7.         <if test="name !=null and name !=''">
  8.             AND `name` = #{name}
  9.         </if>
  10.     </where>
  11. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  12.     SELECT * FROM `monster`
  13.     <where>
  14.         <if test="id>=0">
  15.             id > #{id}
  16.         </if>
  17.         <if test="name !=null and name !=''">
  18.             AND `name` = #{name}
  19.         </if>
  20.     </where>
  21. </select>WHERE `name` = #{name}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  22.     SELECT * FROM `monster`
  23.     <where>
  24.         <if test="id>=0">
  25.             id > #{id}
  26.         </if>
  27.         <if test="name !=null and name !=''">
  28.             AND `name` = #{name}
  29.         </if>
  30.     </where>
  31. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  32.     SELECT * FROM `monster`
  33.     <where>
  34.         <if test="id>=0">
  35.             id > #{id}
  36.         </if>
  37.         <if test="name !=null and name !=''">
  38.             AND `name` = #{name}
  39.         </if>
  40.     </where>
  41. </select>    WHERE  `id` >= #{id}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  42.     SELECT * FROM `monster`
  43.     <where>
  44.         <if test="id>=0">
  45.             id > #{id}
  46.         </if>
  47.         <if test="name !=null and name !=''">
  48.             AND `name` = #{name}
  49.         </if>
  50.     </where>
  51. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  52.     SELECT * FROM `monster`
  53.     <where>
  54.         <if test="id>=0">
  55.             id > #{id}
  56.         </if>
  57.         <if test="name !=null and name !=''">
  58.             AND `name` = #{name}
  59.         </if>
  60.     </where>
  61. </select>    WHERE  `salary` > 100<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  62.     SELECT * FROM `monster`
  63.     <where>
  64.         <if test="id>=0">
  65.             id > #{id}
  66.         </if>
  67.         <if test="name !=null and name !=''">
  68.             AND `name` = #{name}
  69.         </if>
  70.     </where>
  71. </select>
复制代码
当入参name不符合条件时,选择id的子句
当入参name和id都不符合条件时,默认选择otherwise的子句
2.4foreach标签

动态 SQL 的另一个常见使用场景是对集合进行遍历(尤其是在构建 IN 条件语句的时候)。
foreach 元素的功能非常强大,它允许你指定一个集合,声明可以在元素体内使用的集合项(item)和索引(index)变量。它也允许你指定开头(open)与结尾(close)的字符串以及集合项迭代之间的分隔符(separator),这个元素也不会错误地添加多余的分隔符。
提示 你可以将任何可迭代对象(如 List、Set 等)、Map 对象或者数组对象作为集合参数传递给 foreach。当使用可迭代对象或者数组时,index 是当前迭代的序号,item 的值是本次迭代获取到的元素。当使用 Map 对象(或者 Map.Entry 对象的集合)时,index 是键,item 是值。
例子:查询id为 10,12,14 的记录
  1.     SELECT * FROM `monster`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <where>
  4.         <if test="id>=0">
  5.             id > #{id}
  6.         </if>
  7.         <if test="name !=null and name !=''">
  8.             AND `name` = #{name}
  9.         </if>
  10.     </where>
  11. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  12.     SELECT * FROM `monster`
  13.     <where>
  14.         <if test="id>=0">
  15.             id > #{id}
  16.         </if>
  17.         <if test="name !=null and name !=''">
  18.             AND `name` = #{name}
  19.         </if>
  20.     </where>
  21. </select>id IN<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  22.     SELECT * FROM `monster`
  23.     <where>
  24.         <if test="id>=0">
  25.             id > #{id}
  26.         </if>
  27.         <if test="name !=null and name !=''">
  28.             AND `name` = #{name}
  29.         </if>
  30.     </where>
  31. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  32.     SELECT * FROM `monster`
  33.     <where>
  34.         <if test="id>=0">
  35.             id > #{id}
  36.         </if>
  37.         <if test="name !=null and name !=''">
  38.             AND `name` = #{name}
  39.         </if>
  40.     </where>
  41. </select>    #{id}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  42.     SELECT * FROM `monster`
  43.     <where>
  44.         <if test="id>=0">
  45.             id > #{id}
  46.         </if>
  47.         <if test="name !=null and name !=''">
  48.             AND `name` = #{name}
  49.         </if>
  50.     </where>
  51. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  52.     SELECT * FROM `monster`
  53.     <where>
  54.         <if test="id>=0">
  55.             id > #{id}
  56.         </if>
  57.         <if test="name !=null and name !=''">
  58.             AND `name` = #{name}
  59.         </if>
  60.     </where>
  61. </select>
复制代码
测试:
  1. @Testpublic void findMonsterById_forEach() {    Map map = new HashMap();    map.put("ids", Arrays.asList(10, 12, 14));//ids就是要遍历的集合,这里为List    List monsters =<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <where>
  4.         <if test="id>=0">
  5.             id > #{id}
  6.         </if>
  7.         <if test="name !=null and name !=''">
  8.             AND `name` = #{name}
  9.         </if>
  10.     </where>
  11. </select>monsterMapper.findMonsterById_forEach(map);    for (Monster monster : monsters) {        System.out.println("monster--" + monster);    }    if (sqlSession != null) {        sqlSession.close();    }}
复制代码
2.5trim标签(使用较少)

你可以通过自定义 trim 元素来定制元素的功能。比如,和 where 元素等价的自定义 trim 元素为:
  1. @Test
  2. public void findMonsterById_forEach() {
  3.     Map<String, Object> map = new HashMap<>();
  4.     map.put("ids", Arrays.asList(10, 12, 14));//ids就是要遍历的集合,这里为List
  5.     List<Monster> monsters =
  6.             monsterMapper.findMonsterById_forEach(map);
  7.     for (Monster monster : monsters) {
  8.         System.out.println("monster--" + monster);
  9.     }
  10.     if (sqlSession != null) {
  11.         sqlSession.close();
  12.     }
  13. }
复制代码
prefixOverrides 属性会忽略通过管道符(|)分隔的文本序列(注意此例中的空格是必要的)。上述例子会移除所有 prefixOverrides 属性中指定的内容,并且插入 prefix 属性中指定的内容。我们也可以在 prefixOverride 属性中添加其他文本序列,达到拓展where元素的功能。
此外,trim 元素还有 suffix、suffixOverrides 属性,功能和 prefix、prefixOverride 类似。
例子:按照名字或年龄查询记录,如果sql语句开头有 and | or 就替换成 where
  1.     SELECT * FROM `monster`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <where>
  4.         <if test="id>=0">
  5.             id > #{id}
  6.         </if>
  7.         <if test="name !=null and name !=''">
  8.             AND `name` = #{name}
  9.         </if>
  10.     </where>
  11. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  12.     SELECT * FROM `monster`
  13.     <where>
  14.         <if test="id>=0">
  15.             id > #{id}
  16.         </if>
  17.         <if test="name !=null and name !=''">
  18.             AND `name` = #{name}
  19.         </if>
  20.     </where>
  21. </select>HAHA `name` =#{name}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  22.     SELECT * FROM `monster`
  23.     <where>
  24.         <if test="id>=0">
  25.             id > #{id}
  26.         </if>
  27.         <if test="name !=null and name !=''">
  28.             AND `name` = #{name}
  29.         </if>
  30.     </where>
  31. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  32.     SELECT * FROM `monster`
  33.     <where>
  34.         <if test="id>=0">
  35.             id > #{id}
  36.         </if>
  37.         <if test="name !=null and name !=''">
  38.             AND `name` = #{name}
  39.         </if>
  40.     </where>
  41. </select>    OR `age` =#{age}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  42.     SELECT * FROM `monster`
  43.     <where>
  44.         <if test="id>=0">
  45.             id > #{id}
  46.         </if>
  47.         <if test="name !=null and name !=''">
  48.             AND `name` = #{name}
  49.         </if>
  50.     </where>
  51. </select>
复制代码
2.6set标签(重点)

set 元素可以用于动态包含需要更新的列,忽略其它不更新的列。比如:
  1. <select id="findMonsterByName_Trim" parameterType="map" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <trim prefix="WHERE" prefixOverrides="and |or |HAHA">
  4.         <if test="name != null and name !=''">
  5.             HAHA `name` =#{name}
  6.         </if>
  7.         <if test="age != null and age !=''">
  8.             OR `age` =#{age}
  9.         </if>
  10.     </trim>
  11. </select>
复制代码
这个例子中,set 元素会动态地在行首插入 SET 关键字,并会删掉多余的逗号(这些逗号是在使用条件语句给列赋值时引入的)。
你也可以使用trim标签来达到set标签的效果
例子:对指定id的记录进行修改,如果没有设置新的属性,则保持原来的值
  1.     UPDATE `monster`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <where>
  4.         <if test="id>=0">
  5.             id > #{id}
  6.         </if>
  7.         <if test="name !=null and name !=''">
  8.             AND `name` = #{name}
  9.         </if>
  10.     </where>
  11. </select>age`=#{age},        `name`=#{name},        `email`=#{email},        `birthday`=#{birthday},        `gender`=#{gender},        `salary`=#{salary},        WHERE `id`=#{id}
复制代码
当入参只有id和name时,SQL语句如下,只有name字段被修改了,其他的字段仍保持原来的值。
3.练习

有一个hero表,字段为id,nickname,skill,rank,salary,birthday
需求如下:
(1)创建表hero
  1. <update id="updateMonster_set" parameterType="map">
  2.     UPDATE `monster`
  3.     <set>
  4.         <if test="age != null and age != ''">age`=#{age},</if>
  5.         <if test="name != null and name != ''">`name`=#{name},</if>
  6.         <if test="email != null and email != ''">`email`=#{email},</if>
  7.         <if test="birthday != null and birthday != ''">`birthday`=#{birthday},</if>
  8.         <if test="gender != null and gender != ''">`gender`=#{gender},</if>
  9.         <if test="salary != null and salary != ''">`salary`=#{salary},</if>
  10.     </set>
  11.     WHERE `id`=#{id}
  12. </update>
复制代码
(2)实体类Hero
  1. -- 创建hero表
  2. CREATE TABLE `hero`(
  3. `id` INT NOT NULL AUTO_INCREMENT,
  4. `nickname` VARCHAR(255) NOT NULL DEFAULT '',
  5. `skill` VARCHAR(255) NOT NULL DEFAULT '',
  6. `rank` INT NOT NULL,
  7. `salary` DOUBLE NOT NULL,
  8. `birthday` DATE NOT NULL,
  9. PRIMARY KEY (`id`)
  10. )CHARSET=utf8
复制代码
(3)接口声明
  1. package com.li.entity;
  2. import lombok.*;
  3. import java.util.Date;
  4. /**
  5. * @author 李
  6. * @version 1.0
  7. */
  8. @NoArgsConstructor
  9. @AllArgsConstructor
  10. @Setter
  11. @Getter
  12. @ToString
  13. public class Hero {
  14.     private Integer id;
  15.     private String nickname;
  16.     private String skill;
  17.     private Integer rank;
  18.     private double salary;
  19.     private Date birthday;
  20. }
复制代码
(4)映射文件
  1. <select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  2.     SELECT * FROM `monster`
  3.     <where>
  4.         <if test="id>=0">
  5.             id > #{id}
  6.         </if>
  7.         <if test="name !=null and name !=''">
  8.             AND `name` = #{name}
  9.         </if>
  10.     </where>
  11. </select>        INSERT INTO `hero` (nickname,skill,rank,salary,birthday)        VALUE(#{nickname},#{skill},#{rank},#{salary},#{birthday})<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  12.     SELECT * FROM `monster`
  13.     <where>
  14.         <if test="id>=0">
  15.             id > #{id}
  16.         </if>
  17.         <if test="name !=null and name !=''">
  18.             AND `name` = #{name}
  19.         </if>
  20.     </where>
  21. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  22.     SELECT * FROM `monster`
  23.     <where>
  24.         <if test="id>=0">
  25.             id > #{id}
  26.         </if>
  27.         <if test="name !=null and name !=''">
  28.             AND `name` = #{name}
  29.         </if>
  30.     </where>
  31. </select>SELECT * FROM `hero`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  32.     SELECT * FROM `monster`
  33.     <where>
  34.         <if test="id>=0">
  35.             id > #{id}
  36.         </if>
  37.         <if test="name !=null and name !=''">
  38.             AND `name` = #{name}
  39.         </if>
  40.     </where>
  41. </select>        WHERE rank > #{rank}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  42.     SELECT * FROM `monster`
  43.     <where>
  44.         <if test="id>=0">
  45.             id > #{id}
  46.         </if>
  47.         <if test="name !=null and name !=''">
  48.             AND `name` = #{name}
  49.         </if>
  50.     </where>
  51. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  52.     SELECT * FROM `monster`
  53.     <where>
  54.         <if test="id>=0">
  55.             id > #{id}
  56.         </if>
  57.         <if test="name !=null and name !=''">
  58.             AND `name` = #{name}
  59.         </if>
  60.     </where>
  61. </select>        SELECT * FROM `hero`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  62.     SELECT * FROM `monster`
  63.     <where>
  64.         <if test="id>=0">
  65.             id > #{id}
  66.         </if>
  67.         <if test="name !=null and name !=''">
  68.             AND `name` = #{name}
  69.         </if>
  70.     </where>
  71. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  72.     SELECT * FROM `monster`
  73.     <where>
  74.         <if test="id>=0">
  75.             id > #{id}
  76.         </if>
  77.         <if test="name !=null and name !=''">
  78.             AND `name` = #{name}
  79.         </if>
  80.     </where>
  81. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  82.     SELECT * FROM `monster`
  83.     <where>
  84.         <if test="id>=0">
  85.             id > #{id}
  86.         </if>
  87.         <if test="name !=null and name !=''">
  88.             AND `name` = #{name}
  89.         </if>
  90.     </where>
  91. </select>rank IN<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  92.     SELECT * FROM `monster`
  93.     <where>
  94.         <if test="id>=0">
  95.             id > #{id}
  96.         </if>
  97.         <if test="name !=null and name !=''">
  98.             AND `name` = #{name}
  99.         </if>
  100.     </where>
  101. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  102.     SELECT * FROM `monster`
  103.     <where>
  104.         <if test="id>=0">
  105.             id > #{id}
  106.         </if>
  107.         <if test="name !=null and name !=''">
  108.             AND `name` = #{name}
  109.         </if>
  110.     </where>
  111. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  112.     SELECT * FROM `monster`
  113.     <where>
  114.         <if test="id>=0">
  115.             id > #{id}
  116.         </if>
  117.         <if test="name !=null and name !=''">
  118.             AND `name` = #{name}
  119.         </if>
  120.     </where>
  121. </select>#{rank}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  122.     SELECT * FROM `monster`
  123.     <where>
  124.         <if test="id>=0">
  125.             id > #{id}
  126.         </if>
  127.         <if test="name !=null and name !=''">
  128.             AND `name` = #{name}
  129.         </if>
  130.     </where>
  131. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  132.     SELECT * FROM `monster`
  133.     <where>
  134.         <if test="id>=0">
  135.             id > #{id}
  136.         </if>
  137.         <if test="name !=null and name !=''">
  138.             AND `name` = #{name}
  139.         </if>
  140.     </where>
  141. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  142.     SELECT * FROM `monster`
  143.     <where>
  144.         <if test="id>=0">
  145.             id > #{id}
  146.         </if>
  147.         <if test="name !=null and name !=''">
  148.             AND `name` = #{name}
  149.         </if>
  150.     </where>
  151. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  152.     SELECT * FROM `monster`
  153.     <where>
  154.         <if test="id>=0">
  155.             id > #{id}
  156.         </if>
  157.         <if test="name !=null and name !=''">
  158.             AND `name` = #{name}
  159.         </if>
  160.     </where>
  161. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  162.     SELECT * FROM `monster`
  163.     <where>
  164.         <if test="id>=0">
  165.             id > #{id}
  166.         </if>
  167.         <if test="name !=null and name !=''">
  168.             AND `name` = #{name}
  169.         </if>
  170.     </where>
  171. </select>UPDATE `hero`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  172.     SELECT * FROM `monster`
  173.     <where>
  174.         <if test="id>=0">
  175.             id > #{id}
  176.         </if>
  177.         <if test="name !=null and name !=''">
  178.             AND `name` = #{name}
  179.         </if>
  180.     </where>
  181. </select>        `nickname`=#{nickname},<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  182.     SELECT * FROM `monster`
  183.     <where>
  184.         <if test="id>=0">
  185.             id > #{id}
  186.         </if>
  187.         <if test="name !=null and name !=''">
  188.             AND `name` = #{name}
  189.         </if>
  190.     </where>
  191. </select>`skill`=#{skill},<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  192.     SELECT * FROM `monster`
  193.     <where>
  194.         <if test="id>=0">
  195.             id > #{id}
  196.         </if>
  197.         <if test="name !=null and name !=''">
  198.             AND `name` = #{name}
  199.         </if>
  200.     </where>
  201. </select>`rank`=#{rank},<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  202.     SELECT * FROM `monster`
  203.     <where>
  204.         <if test="id>=0">
  205.             id > #{id}
  206.         </if>
  207.         <if test="name !=null and name !=''">
  208.             AND `name` = #{name}
  209.         </if>
  210.     </where>
  211. </select>`salary`=#{salary},<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  212.     SELECT * FROM `monster`
  213.     <where>
  214.         <if test="id>=0">
  215.             id > #{id}
  216.         </if>
  217.         <if test="name !=null and name !=''">
  218.             AND `name` = #{name}
  219.         </if>
  220.     </where>
  221. </select>`birthday`=#{birthday},<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  222.     SELECT * FROM `monster`
  223.     <where>
  224.         <if test="id>=0">
  225.             id > #{id}
  226.         </if>
  227.         <if test="name !=null and name !=''">
  228.             AND `name` = #{name}
  229.         </if>
  230.     </where>
  231. </select>    WHERE id = #{id}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  232.     SELECT * FROM `monster`
  233.     <where>
  234.         <if test="id>=0">
  235.             id > #{id}
  236.         </if>
  237.         <if test="name !=null and name !=''">
  238.             AND `name` = #{name}
  239.         </if>
  240.     </where>
  241. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  242.     SELECT * FROM `monster`
  243.     <where>
  244.         <if test="id>=0">
  245.             id > #{id}
  246.         </if>
  247.         <if test="name !=null and name !=''">
  248.             AND `name` = #{name}
  249.         </if>
  250.     </where>
  251. </select>SELECT * FROM `hero`<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  252.     SELECT * FROM `monster`
  253.     <where>
  254.         <if test="id>=0">
  255.             id > #{id}
  256.         </if>
  257.         <if test="name !=null and name !=''">
  258.             AND `name` = #{name}
  259.         </if>
  260.     </where>
  261. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  262.     SELECT * FROM `monster`
  263.     <where>
  264.         <if test="id>=0">
  265.             id > #{id}
  266.         </if>
  267.         <if test="name !=null and name !=''">
  268.             AND `name` = #{name}
  269.         </if>
  270.     </where>
  271. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  272.     SELECT * FROM `monster`
  273.     <where>
  274.         <if test="id>=0">
  275.             id > #{id}
  276.         </if>
  277.         <if test="name !=null and name !=''">
  278.             AND `name` = #{name}
  279.         </if>
  280.     </where>
  281. </select>        WHERE id = #{id}<select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  282.     SELECT * FROM `monster`
  283.     <where>
  284.         <if test="id>=0">
  285.             id > #{id}
  286.         </if>
  287.         <if test="name !=null and name !=''">
  288.             AND `name` = #{name}
  289.         </if>
  290.     </where>
  291. </select><select id="findMonsterByIdAndName" parameterType="Monster" resultType="Monster">
  292.     SELECT * FROM `monster`
  293.     <where>
  294.         <if test="id>=0">
  295.             id > #{id}
  296.         </if>
  297.         <if test="name !=null and name !=''">
  298.             AND `name` = #{name}
  299.         </if>
  300.     </where>
  301. </select>
复制代码
(5)测试略

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!




欢迎光临 ToB企服应用市场:ToB评测及商务社交产业平台 (https://dis.qidao123.com/) Powered by Discuz! X3.4