模糊查找 使用方法
String SQL = "SELECT * FROM table_in WHERE LIKE ?";//目标sql: SELECT * FROM table_in WHERE LIKE '%abc%'
String s = "abc";
getJDBCTemplate().query(SQL, new String[]{"%"+s+"%"});
JdbcTemplate in() 使用方法
String SQL = "SELECT * FROM table_in WHERE IN (:id)";//目标sql: SELECT * FROM table_in WHERE IN ('1','2','3','4')
String s = "1,2,3,4";
Map<String, Object> map = new LinkedHashMap<String, Object>();
map.put("id", Arrays.asList(s.split(",")));//传入一个数组
List<TrainPo> result = new NamedParameterJdbcTemplate(getJDBCTemplate()).query(SQL, map);
总结:
之所以这两个和普通的有所不一样是因为,在JdbcTemplate内部会进行转换
转换会按照数据便利对他们一一进行替换同时会给他们加上单引号
这就导致了与本来的意义不一致的行为了
如下
%xxxx% ==> %'xxxxx'%
(1,2,3,4) ==> ('1,2,3,4')变成了一个整体了

本文介绍了如何在JdbcTemplate中实现模糊查询和IN条件查询,并提供了具体的SQL语句构造方法及参数传递方式。特别关注了在进行模糊查询时字符串匹配的处理方式以及IN查询时如何正确传递参数列表。
2466

被折叠的 条评论
为什么被折叠?



