程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了如何使用Java Spring Framework搜索字符串LIKE'something%'?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决如何使用Java Spring Framework搜索字符串LIKE'something%'??

开发过程中遇到如何使用Java Spring Framework搜索字符串LIKE'something%'?的问题如何解决?下面主要结合日常开发的经验,给出你关于如何使用Java Spring Framework搜索字符串LIKE'something%'?的解决方法建议,希望对你解决如何使用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,请注明来意。