mybatis动态标签——where、if

mapper接口

public interface EmpMapper {

    List<Emp> getEmp(Emp emp);
}

mapper.xml

复制代码
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.xxx.dynamicSQL.mapper.EmpMapper">

    <!--
        if标签:通过test属性中的表达式判断标签中的内容是否有效(是否会拼接到sql中)
        where标签:1.若where标签中有条件成立,会自动生成where关键字
                   2.会自动将where标签中内容前多余的and去掉,但是其中内容后多余的and无法去掉
                   3.若where标签中没有任何一个条件成立,则where也不会自动生成
    -->
    <select id="getEmp" resultType="emp">
        select * from t_emp
        <where>
            <if test="empName != null and empName != ''">
                and emp_name = #{empName}
            </if>
            <if test="age != null and age != ''">
                and age = #{age}
            </if>
            <if test="gender != null and gender != ''">
                and gender = #{gender}
            </if>
        </where>
    </select>
</mapper>
复制代码

测试代码

复制代码
@Test
    public void test1(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        EmpMapper mapper = sqlSession.getMapper(EmpMapper.class);
        Emp emp = new Emp(null,"李四",null,"男");
        List<Emp> list = mapper.getEmp(emp);

        list.forEach(System.out::println);
    }
复制代码

 

posted @   iTao0128  阅读(383)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
历史上的今天:
2022-03-03 webpack安装和使用
2022-03-03 模块化
点击右上角即可分享
微信分享提示