@Override public List<User> getUserList(String userName, int userRole, int currentPageNo, int pageSize) { StringBuffer sql = new StringBuffer(); sql.append("select u.*,r.roleName as userRoleName from smbms_user u,smbms_role r where u.userRole = r.id"); List<Object> list = new ArrayList<Object>(); if (!StringUtils.isNullOrEmpty(userName)) { sql.append(" and u.userName like ?"); list.add("%" + userName + "%"); } if (userRole > 0) { sql.append(" and u.userRole = ?"); list.add(userRole); } sql.append(" order by creationDate DESC limit ?,?"); currentPageNo = (currentPageNo - 1) * pageSize; list.add(currentPageNo); list.add(pageSize); Object[] params = list.toArray(); System.out.println("sql ----> " + sql.toString()); return template.query(sql.toString(), new BeanPropertyRowMapper<User>(User.class), params); }
时间: 2024-04-18 14:33:05 浏览: 111
您好!这段代码是一个Java方法,用于从数据库中获取用户列表。它接受一些参数,如用户名、用户角色、当前页码和每页大小,以便进行条件查询和分页查询。
具体的步骤如下:
1. 创建一个StringBuffer对象sql,用于构建SQL查询语句。
2. 使用append方法逐步拼接SQL查询语句,该语句从smbms_user表和smbms_role表中查询用户信息,同时将用户角色的名称也查询出来。
3. 创建一个List对象list,用于存储需要传递给查询的参数值。
4. 如果用户名不为空,将其作为查询条件之一,拼接到SQL语句中,并将参数值添加到list中。
5. 如果用户角色大于0,将其作为查询条件之一,拼接到SQL语句中,并将参数值添加到list中。
6. 添加分页查询的条件,拼接到SQL语句中,并将当前页码和每页大小计算得到的值添加到list中。
7. 将list转换为Object数组params。
8. 打印输出完整的SQL语句。
9. 使用数据库操作模板(template)的query方法执行查询,将查询结果映射到User对象的List集合中,并将参数传递给查询。
10. 返回User对象的List集合。
请注意,这段代码只给出了方法的实现部分,并没有提供完整的类定义或数据库操作模板的初始化代码。如果您需要完整的代码,请提供更多相关信息或上下文。
阅读全文