我是靠谱客的博主 坦率夕阳,最近开发中收集的这篇文章主要介绍动态SQL之choose、when、otherwise标签动态SQL之choose、when、otherwise标签,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

动态SQL之choose、when、otherwise标签

  • choosewhenotherwise
  • chose:父标签
  • when:相当于if...else if,只要有一个条件成立,其它的都不判断了
  • otherwise:相当于else,若所有条件都不成立,则执行otherwise
  • when至少设置一个,otherwise最多设置一个

  DynamicSQLMapper接口

public interface DynamicSQLMapper {

    /**
     * 使用choose查询员工的信息
     * @param emp
     * @return
     */
    List<Emp> getEmpByChoose(Emp emp);
}

MyBatis的映射文件DynamicSQLMapper.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper
        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
        "https://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.atguigu.mybatis.mapper.DynamicSQLMapper">
    <!--List<Emp> getEmpByChoose(Emp emp);-->
    <select id="getEmpByChoose" resultType="Emp">
        select * from t_emp
        <where>
            <choose>
                <when test="empName != null and empName != ''">
                    emp_name = #{empName}
                </when>
                <when test="age != null and age != ''">
                    age = #{age}
                </when>
                <when test="gender != null and gender != ''">
                    gender = #{gender}
                </when>
            </choose>
        </where>
    </select>
</mapper>

测试

public class DynamicMapperTest {
    @Test
    public void testGetEmpByChoose(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        DynamicSQLMapper mapper = sqlSession.getMapper(DynamicSQLMapper.class);
        Emp emp = new Emp(null,"张三",20,"男");
        List<Emp> list = mapper.getEmpByChoose(emp);
        list.forEach(System.out::println);
    }
}

最后

以上就是坦率夕阳为你收集整理的动态SQL之choose、when、otherwise标签动态SQL之choose、when、otherwise标签的全部内容,希望文章能够帮你解决动态SQL之choose、when、otherwise标签动态SQL之choose、when、otherwise标签所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(48)

评论列表共有 0 条评论

立即
投稿
返回
顶部