//动态的带参数的分页查询 m是页数 page n是limit public List<User> selectAllByParam(Map map){ System.out.println("map dao= " + map); for (Object o : map.keySet()) { System.out.println("o = " + o); } String page =(String) map.get("page");//接收前端参数放入到map中 String limit =(String) map.get("limit"); String real_name =(String) map.get("real_name"); String type =(String) map.get("type"); String username =(String) map.get("username"); //如果real_name不为空 (动态sql 1个sql 实现多个查询) //sql=select * from t_user where real_name like %张% limit ?,? //如果real_name不为空 type不为空 //sql=select * from t_user where real_name like %张% and type=1 limit ?,? //如果real_name不为空 type不为空 username不为空 //sql=select * from t_user where real_name like %张% and type=1 and username like %李% limit ?,? List<User> lists = new ArrayList<>(); //1、步骤1、创建链接对象 Connection connection = DBHelper.getConnection(); //2、创建sql语句 /*String sql="select * from t_user where +" + " " + " " + " + limit ?,? ";*/ String sql="select * from t_user where 1=1";//因为是多余的 if(null!=real_name &&real_name.length()>0){ sql=sql +" and real_name like '%"+real_name+"%' "; } if(null!=type &&type.length()>0){ sql=sql +" and type ="+type+" "; } if(null!=username &&username.length()>0){ sql=sql +" and username like '%"+username+"%' "; } sql = sql + " limit ? , ? "; System.out.println("dao de sql = " + sql); PreparedStatement ps=null; ResultSet rs=null; PageBeanUtil pageBeanUtil = new PageBeanUtil(Integer.parseInt(page),Integer.parseInt(limit)); try { //3、使用链接对象获取预编译对象 ps= connection.prepareStatement(sql); ps.setInt(1,pageBeanUtil.getStart()); ps.setInt(2,Integer.parseInt(limit)); //4、执行预编译对象,得出结果集 rs= ps.executeQuery(); //5、遍历结果集,一一的取对象 while (rs.next()){ User user = new User(); user.setId(rs.getInt("id")); user.setCreate_time(rs.getString("create_time")); user.setImg(rs.getString("img")); user.setIs_del(rs.getInt("is_del")); user.setModify_time(rs.getString("modify_time")); user.setPassword(rs.getString("password")); user.setReal_name(rs.getString("real_name")); user.setType(rs.getInt("type")); user.setUsername(rs.getString("username")); lists.add(user); } } catch (SQLException e) { e.printStackTrace(); }finally { try { connection.close(); } catch (SQLException e) { e.printStackTrace(); } } return lists; }
动态的带参数的分页查询
最新推荐文章于 2023-04-03 15:41:06 发布
该博客主要展示了如何根据传入的参数动态构建SQL查询语句,实现分页查询功能。通过检查Map参数中的real_name、type和username,动态拼接SQL条件,最后结合分页参数完成查询并返回User对象列表。
摘要由CSDN通过智能技术生成