spring jdbc查詢時使用IN()的技巧


在使用SELECT查詢時IN比OR的效率好。那么在Spring中如何使用IN()呢?

這是我原來的使用方式,用字符串拼接:

StringBuilder buf = new StringBuilder("SELECT name FROM pos_user WHERE id IN (");  
// ids 是List<Integer>類型  
for(int i = 0; i < ids.size(); i++) {  
  if (i > 0) buf.append(",");  
  buf.apend(ids.get(i));  
}  
buf.append(")");  
  
List<String> list = jdbcTemplate.queryForList(buf.toString(), String.class); 

 實際上Spring JDBC提供了一種更優雅的方法:

NamedParameterJdbcTemplate namedParameterJdbcTemplate =   
        new NamedParameterJdbcTemplate(jdbcTemplate);  
      
MapSqlParameterSource parameters = new MapSqlParameterSource();  
parameters.addValue("ids", ids);  
List<String> list =   
        namedParameterJdbcTemplate.query("SELECT name FROM pos_user WHERE id in (:ids)",  
                                          parameters, String.class);  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM