码迷,mamicode.com
首页 > 其他好文 > 详细

QueryRunner使用之可变条件的处理

时间:2019-03-12 21:10:37      阅读:173      评论:0      收藏:0      [点我收藏+]

标签:integer   nbsp   return   list   size   用户   like   bsp   state   

在三层架构的Dao层中,需要通过不确定的条件,从数据库查询结果。

可以利用List集合作为容器将条件存储起来。

实际开发中的代码:

 

public List<Hotel> searchByFloorAndTypeAndFree(String cmbHouseFloor,String cmbHouseType, String cheFree) throws SQLException {
        QueryRunner runner = new QueryRunner(DataSourceUtils.getDataSource());
        //定义一个容器存储实际参数
        List<String> list = new ArrayList<String>();
        String sql = "select * from tb_hotel where 1 = 1";
        //如果用户选择了楼层
        int cmbHouseFloorInt = Integer.parseInt(cmbHouseFloor);
        if(cmbHouseFloorInt > 0){
            sql += " and houseId like ?";//模糊查询
            list.add(cmbHouseFloor + "%");
        }
        //如果用户选择了房型
        if(!cmbHouseType.equals("不限")){
            sql += " and houseType = ?";
            list.add(cmbHouseType);
        }
        //如果用户勾选了空闲复选框
        if(cheFree != null){
            sql += " and houseState = ?";
            list.add("%" + 0);
        }
        List<Hotel> hotelList = runner.query(sql, new BeanListHandler<Hotel>(Hotel.class), list.toArray());
        return hotelList;
    }

 

注意:根据runner.query的参数,可变参数需要String类型,所以需要将list转化为String即list.toArray()。

QueryRunner使用之可变条件的处理

标签:integer   nbsp   return   list   size   用户   like   bsp   state   

原文地址:https://www.cnblogs.com/itzhouq/p/itzhouq.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有 京ICP备13008772号-2
迷上了代码!