美文网首页
7 - 动态SQL--where

7 - 动态SQL--where

作者: 农民工__乔Young | 来源:发表于2019-05-14 20:31 被阅读0次

where if
dao
在含有int类型的查询参数,最好设置为Integer,以便接收null

List<Student> selectStudents(@Param("name") String name,
                             @Param("age") Integer age,
                             @Param("gender") GenderEnum gender);

mapper

 <select id="selectStudents" resultMap="studentMapper">
       select * from `student`
       <where>
           <if test="name != null">
               `name` like concat('%',#{name},'%')
           </if>
           <if test="age != null">
               and `age` = #{age}
           </if>
           <if test="gender != null">
               and `gender` = #{gender,typeHandler=genderTypeHandler}
           </if>
       </where>
    </select>

test

@Test
    public void test() {
        SqlSession session = factory.openSession();
        try {
            StudentMapper studentMapper = session.getMapper(StudentMapper.class);
//            Student student = new Student("hu",19,GenderEnum.getGender(1));
//            int affectedRows = studentMapper.insertStudent(student);
            String name = "h";
            int age = 20;
            GenderEnum gender = GenderEnum.getGender(2);
            List<Student> students = studentMapper.selectStudents(name, age,gender);
//            List<Student> students = studentMapper.selectStudents(name, age,null);
//            List<Student> students = studentMapper.selectStudents(name, null,gender);
//            List<Student> students = studentMapper.selectStudents(name, null,null);
//            List<Student> students = studentMapper.selectStudents(null, null,null);
            if(!students.isEmpty()){
                Iterator<Student> it = students.iterator();
                while(it.hasNext()){
                    Student student = it.next();
                    System.out.println(student);
                }
            }else{
                System.out.println("没有查到结果");
            }
        } finally {
            session.commit();
            session.close();
        }
    }

相关文章

  • 7 - 动态SQL--where

    where ifdao在含有int类型的查询参数,最好设置为Integer,以便接收null值 mapper test

  • 7-动态

    就像weixin朋友圈那样,用户可以发布信息到动态,也可以拉取好友发布的信息,要实现该功能我们要新建一个表,既然是...

  • 算法-理解动态规划

    算法-动态规划(1)最大子序和问题[/p/7e787a287876]算法-动态规划(2)最长公共子串[/p/7ba...

  • 2.1-react使用d3.js

    静态渲染svg https://www.jianshu.com/p/b12291a5dcb7 动态渲染svg 动态...

  • 作品

    锤子解锁:http://xz7ilv.axshare.com 动态手表和动态填写:http://vv17kb.ax...

  • iOS 静态库与动态库(制作和使用及其本质)

    一、静态库与动态库存在的形式 1、静态库:.a 或者 .framework 2、动态库:.tbd(Xcode 7以...

  • 脉冲星 7 月脉动 | Pulsar 2.5.0 版本预览,Pu

    **# 脉冲星 7 月脉动 本月看点速览 产品动态 Pulsar 2.5.0 版本预览 社区动态 Apache P...

  • iOS 侧滑

    ViewDeck 左右侧滑控件 MSDynamicsDrawerViewController iOS7 动态弹...

  • 庞丽萍2018-07-28

    第七组庞丽萍同学:2018年7月28号智慧导师班分享:今天7点25分早上动态静心,每天的动态静心来说,又有爱和喜欢...

  • 2018-09-21

    目录 1、制作销售人员表动态 2、制作日期销售表动态 一、制作销售人员表动态 选择A1:B7单元格→公式→根据所选...

网友评论

      本文标题:7 - 动态SQL--where

      本文链接:https://www.haomeiwen.com/subject/qxoeaqtx.html