模糊查找 使用方法
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')變成了一個整體了