大佬教程收集整理的这篇文章主要介绍了如何使用Java Spring Framework搜索字符串LIKE'something%'?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
等待,当然,我必须在一天结束之前“再做一件事”,瞧瞧,我所有的单元测试都突然通过了:
public List<Foo> getByname(List<Integer> codes, String namePart) {
String sql = "SELEct * from FOO where CODE in (:codes) and name like :name"
Map<String,Object> params = new HashMap<String,Object>();
params.put("codes", codes);
params.put("name", namePart+"%");
return getSimpleJdbcTemplate().query(sql, new FooRowMapper(), params);
}
我没想到要在参数中输入“%”,我确定Spring会自动对其进行转义。我想知道我做对了吗?
我有一个带Foos的MySQL表。每个Foo都有一个数字非唯一代码和一个名称。现在,我需要查找具有某些特定代码之一的Foo是否恰好具有以给定字符串开头的名称。在普通的SQL中,这很简单:
SELEct * from FOO where CODE in (2,3,5) and NAME like 'bar%';
但是我现在如何在春季正确地做到这一点?不需要’like’运算符,我可以这样做:
public List<Foo> getByName(List<Integer> codes,String namePart) {
String sql = "SELEct * from FOO where CODE in (:codes) and NAME=:name"
Map<String,Object> params = new HashMap<String,Object>();
params.put("codes",codes);
params.put("name",namePart);
return getSimpleJdbcTemplate().query(sql,new FooRowMapper(),params);
}
然而,与“喜欢”似乎没有任何工作:NAME like :name%
,NAME like ':name%'
或NAME like
?%
使用占位符代替命名参数时。
我可能会残酷地输入
String sql = "SELEct * from FOO where CODE in (:codes) and NAME like '"+namePart+"%'";`
但是显然,如果Spring可以正确地清理输入参数等,那就更好了。
您可能认为Spring会以某种方式支持这一点,但我无法弄清楚。
以上是大佬教程为你收集整理的如何使用Java Spring Framework搜索字符串LIKE'something%'?全部内容,希望文章能够帮你解决如何使用Java Spring Framework搜索字符串LIKE'something%'?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。