黑马程序员技术交流社区
标题:
带条件查询,,拼接sql语句部分代码及注意事项
[打印本页]
作者:
进阶的小巨人
时间:
2019-8-5 16:30
标题:
带条件查询,,拼接sql语句部分代码及注意事项
//
带条件查询记录数
@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());
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2