mybatis中映射文件的SQL深入:动态SQL<if>标签、<where>标签、<foreach>标签

本文详细介绍了mybatis中动态SQL的使用,包括<if>标签用于条件判断,<where>标签简化WHERE子句,以及<foreach>标签用于遍历参数并构建SQL。通过示例展示了如何在映射文件中使用这些标签进行多条件查询和SQL片段的复用。
摘要由CSDN通过智能技术生成

1.1 概述 

  • mybatis的映射文件中,前面我们的SQL都是比较简单的,有些业务逻辑复杂的时候,我们的SQL是动态变化的。

 1.2 动态SQL之<if>标签

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

1.需求:根据id或者名称查询。 

2.dao 查询方法

public interface IUserDao {

   
/**
     *
查询全部
     */
   
List<User> findAll();

   
/**
     *
条件查询,根据idusername查询
     */
   
List<User> findByCondition(User user);
}

3.接口映射: IUserDao.xml 

   <!-- 动态SQL
        <if> 
条件判断标签
            test 属性,用来判断的表达式,返回boolean类型
                 test="id != 0"  这里的id就是parameterTypeUser对象的id属性。
                                 这里的id也是获取对象的id属性值。
-->

<select id="findByCondition" parameterType="user" resultType="user">
    select * from user where 1=1
   
<!-- 判断 -->
   
<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hyhcloud

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值