zoukankan      html  css  js  c++  java
  • MyBatis动态sql语句

    • 动态 SQL 之<if>

    • 动态 SQL 之<foreach>


    <if>

    我们根据实体类的不同取值,使用不同的 SQL语句来进行查询。比如在 id如果不为空时可以根据id查询,如果username 不同空时还要加入用户名作为条件。这种情况在我们的多条件组合查询中经常会碰到。

        <!--    if的使用-->
        <select id="findByCondition" parameterType="com.domain.User" resultType="com.domain.User">
            select * from User
            <where>
                <if test="id!=0">
                    and id=${id}
                </if>
                <if test="username!=null">
                    and username='${username}'
                </if>
                <if test="password!=null">
                    and password='${password}'
                </if>
            </where>
        </select>
    

    <foreach>
    循环执行sql的拼接操作,例如:SELECT * FROM USER WHERE id IN (1,2,5)

    foreach标签的属性含义如下:

    <foreach>标签用于遍历集合,它的属性:

    •collection:代表要遍历的集合元素,注意编写时不要写#{}

    •open:代表语句的开始部分

    •close:代表结束部分

    •item:代表遍历集合的每个元素,生成的变量名

    •sperator:代表分隔符

    <!--    foreach的使用-->
        <select id="findByids" parameterType="list" resultType="com.domain.User">
            select * from User
            <where>
                <foreach collection="list" open="id in(" close=")" item="id" separator=",">
                    ${id}
                </foreach>
            </where>
        </select>
    
  • 相关阅读:
    MVC添加
    bootstrap mvc
    mvc对象转成JSON格式
    乐观锁、悲观锁
    DOCKER上安装HASSIO
    Hass.io: add-on Samba
    Hass.io: add-on Configurator
    Lubuntu安装屏幕键盘onboard,使触摸屏可以登录和输入
    Dell Venue 8 Pro启动盘UEFI模式32位启动,备份系统
    屏幕录像软件Bandicam和oCam
  • 原文地址:https://www.cnblogs.com/lyd447113735/p/14431375.html
Copyright © 2011-2022 走看看