//带条件查询记录数
@Override
public int findTotalCount(Map<String, String[]> map) {
//定义sql,需要动态生成,定义1=1为了更好的拼接字符串
String sql = "select count(*) from user where 1 = 1 ";
StringBuilder sb = new StringBuilder(sql);
//创建一个放value的集合
List<Object> params = new ArrayList<>();
Set<String> keys = map.keySet();
//遍历,得到每一个属性,name,address,email,知道他们的值只有一个,所以取索引0的值
for (String key : keys) {
String value = map.get(key)[0];
//value不能是"" value 不能null,key 不能currentPage
if (value != null && !value.equals("") && !key.equals("currentPage")) {
//拼接一定要有空格,不加会出现 where 1=1and key,这种语句错误
sb.append(" and " + key + " like ? ");
//不能有空格,不然出现" %vlaue",会查不到
params.add("%" + value + "%");
}
} return jdbcTemplate.queryForObject(sb.toString(), Integer.class, params.toArray());
}
|
|