jdbcTemplate 模糊查找 和 in

模糊查找 使用方法

		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')變成了一個整體了


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章