jdbcTemplate 模糊查找 和 in

迷南。 2022-05-04 16:56 184阅读 0赞

转发自奥兰群岛

模糊查找 使用方法

  1. String SQL = "SELECT * FROM table_in WHERE LIKE ?";//目标sql: SELECT * FROM table_in WHERE LIKE '%abc%'
  2. String s = "abc";
  3. getJDBCTemplate().query(SQL, new String[]{"%"+s+"%"});

JdbcTemplate in() 使用方法

  1. String SQL = "SELECT * FROM table_in WHERE IN (:id)";//目标sql: SELECT * FROM table_in WHERE IN ('1','2','3','4')
  2. String s = "1,2,3,4";
  3. Map<String, Object> map = new LinkedHashMap<String, Object>();
  4. map.put("id", Arrays.asList(s.split(",")));//传入一个数组
  5. List<TrainPo> result = new NamedParameterJdbcTemplate(getJDBCTemplate()).query(SQL, map);

总结:
之所以这两个和普通的有所不一样是因为,在JdbcTemplate内部会进行转换

转换会按照数据便利对他们一一进行替换同时会给他们加上单引号

这就导致了与本来的意义不一致的行为了

如下

%xxxx% ==> %’xxxxx’%

(1,2,3,4) ==> (‘1,2,3,4’)变成了一个整体了

发表评论

表情:
评论列表 (有 0 条评论,184人围观)

还没有评论,来说两句吧...

相关阅读