动态sql查询

  1. 什么是动态参数查询
    在应用中经常有多参数查询的情况,比如:
    在这里插入图片描述

  2. 程序

UserMapper.java

List<User> findUserByParams(
            @Param("ename") String ename,
            @Param("sal") Double sal,
            @Param("deptno") Integer deptno
    );
  • 声明条件,通过这三个条件进行查询

写入sql语句

<select id="findUserByParams" resultType="cn.tedu.entity.User">
        select
            empno,
            ename,
            sal,
            deptno
        from
            emp
        <where>
            <if test="ename!=null">
                 ename like #{ename}
            if>
            <if test="sal!=null">
                and sal like #{sal}
            if>
            <if test="deptno!=null">
                and deptno like #{deptno}
            if>
        where>
    select>
  • resultType类型为实体类所在包
  • 利用where标签,可动态去除and条件句,如果只传入一个参数也可执行。不会造成sql语句报错。
    @Test
    public void testFindUserByParams(){
        UserMapper mapper = ctx.getBean("userMapper",UserMapper.class);
        List<User> list = mapper.findUserByParams("张%",null,3);
        list.forEach(user -> System.out.println(user));
    }

测试方法进行查询
动态sql查询_第1张图片

你可能感兴趣的:(Java四阶段,-,框架,sql,java,数据库)