mybatis 动态sql语句

1If标签

缺点:当有多个条件的时候,如果第一个列为空,将不会进行条件连接,而后面的条件会多加上and,所有会出错

映射文件:

--------------------------------------------------------------------------

接口:

-------------------------------------------------------------

测试:

  1. If+where条件判断

映射文件:

-----------------------------------------------------------------------------

接口:

与上面一样的

-------------------------------------------------------------------------

测试:

  1. Set+if跟新

当update语句中没有使用if标签时,如果有一个参数为null,都会导致错误。

当在update语句中使用if标签时,如果前面的if没有执行,则或导致逗号多余错误。使用set标签可以将动态的配置SET 关键字,和剔除追加到条件末尾的任何不相关的逗号。

映射文件:

----------------------------------------------------------------------------------------

接口:

---------------------------------------------------------------------------------------

测试:

  1. trim代替set

映射文件:

------------------------------------------------------------------------------------------

接口:

--------------------------------------------------------------------------------------------

测试:

  1. trim代替where标签

映射文件:

----------------------------------------------------------------------------------------------------

接口:

----------------------------------------------------------------------------------------

测试:

  1. choose (when, otherwise)

类似于Java switch 语句,chooseswitchwhencaseotherwise则为default

如果有一个成立,则choose结束

映射文件:

------------------------------------------------------------------------------------------------

接口:

-----------------------------------------------------------------------------------------------

测试:

7Foreach(参数可以配置为array或者参数为list

主是要迭代一个集合,通常是用于IN 条件List 实例将使用“list做为键,数组实例以“array” 做为键。

映射文件:

(array数组参数)

-------------------------------------------------------------------------------------

(list集合参数)

------------------------------------------------------------------------------------

接口:

-----------------------------------------------------------------------------------------------

测试:

8、批量操作

批量插入

<insert id="saveAll" >

        insert into users(username,password,email) values

        <foreach collection="list" item="user"  separator=",">

            (#{user.username},#{user.password},#{user.email})

        </foreach>

</insert>

查询

<select id="findAllById" resultType="Users" >

        select * from users where userid in

        <foreach collection="list" item="id" open="(" close=")"  separator=",">

            #{id}

        </foreach>

</select>

注意:如果用param1param201获取属性,必须接口有多个参数,不能是只有一个参数

9、动态sql

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值