springjdbc-NamedParameterJdbcTemplate处理in查询

原文

  1. package com.test;  
  2.   
  3. import java.sql.ResultSet;  
  4. import java.sql.SQLException;  
  5. import java.util.ArrayList;  
  6. import java.util.HashMap;  
  7. import java.util.List;  
  8. import java.util.Map;  
  9.   
  10. import org.springframework.jdbc.core.JdbcTemplate;  
  11. import org.springframework.jdbc.core.RowMapper;  
  12. import org.springframework.jdbc.core.namedparam.BeanPropertySqlParameterSource;  
  13. import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;  
  14. import org.springframework.jdbc.core.namedparam.NamedParameterJdbcTemplate;  
  15.   
  16. import com.java.common.util.BeanFactory;  
  17. import com.java.ssmb.entity.domain.UserInfo;  
  18. /** 
  19.  * 使用NamedParameterJdbcTemplate查询条件sql中in查询和javabean查询 
  20.  * 一般spring项目中都存在JdbcTemplate, 
  21.  * 例子使用JdbcTemplate创建NamedParameterJdbcTemplate 
  22.  *  
  23.  * @author yeshun 
  24.  * 
  25.  */  
  26. public class NamedParameterJdbcTemplateTest {  
  27.   
  28.     private NamedParameterJdbcTemplate namedJdbcTemplate;  
  29.       
  30.     public NamedParameterJdbcTemplateTest(){  
  31.         JdbcTemplate jdbcTemplate = BeanFactory.getBean("jdbcTemplate",JdbcTemplate.class);  
  32.         this.namedJdbcTemplate = new NamedParameterJdbcTemplate(jdbcTemplate);  
  33.     }  
  34.       
  35.     /* 
  36.      * 使用map查询 
  37.      */  
  38.     public void queryListByMap(List<String> userids){  
  39.         String sql = "select * from user_table u where u.user_id in (:userids )";  
  40.           
  41.         Map<String,Object> parameters = new HashMap<String,Object>();  
  42.         parameters.put("userids", userids);  
  43.           
  44.         List<Map<String,Object>> list = namedJdbcTemplate.queryForList(sql, parameters);  
  45.           
  46.         for (Map<String, Object> map : list) {  
  47.             System.out.println("-------------------");  
  48.             System.out.println(map.get("user_id"));  
  49.             System.out.println(map.get("user_name"));  
  50.         }  
  51.     }  
  52.       
  53.     /* 
  54.      * 使用MapSqlParameterSource查询 
  55.      */  
  56.     public void queryListByMapSqlParameterSource(List<String> userids){  
  57.         String sql = "select * from user_table u where u.user_id in (:userids )";  
  58.           
  59.         MapSqlParameterSource parameters = new MapSqlParameterSource();  
  60.         parameters.addValue("userids", userids);  
  61.           
  62.         List<Map<String,Object>> list = namedJdbcTemplate.queryForList(sql, parameters);  
  63.           
  64.         for (Map<String, Object> map : list) {  
  65.             System.out.println("-------------------");  
  66.             System.out.println(map.get("user_id"));  
  67.             System.out.println(map.get("user_name"));  
  68.         }  
  69.     }  
  70.       
  71.     /* 
  72.      * 使用BeanPropertySqlParameterSource查询,javabean查询 
  73.      */  
  74.     public void querySingleByBeanPropertySqlParameterSource(){  
  75.         //:userId -- 对应UserInfo.userId  
  76.         String sql = "select * from user_table u where u.user_id = :userId ";  
  77.           
  78.         UserInfo user = new UserInfo();  
  79.         user.setUserId("user0");  
  80.         BeanPropertySqlParameterSource parameters = new BeanPropertySqlParameterSource(user);  
  81.           
  82.         Map<String,Object> map = namedJdbcTemplate.queryForMap(sql, parameters);  
  83.           
  84.         System.out.println(map.get("user_id"));  
  85.         System.out.println(map.get("user_name"));  
  86.           
  87.     }  
  88.       
  89.     /* 
  90.      * 查询单个返回值 
  91.      */  
  92.     public void querySingle(List<String> userids){  
  93.         String sql = "select count(*) from user_table u where u.user_id in (:userids )";  
  94.         MapSqlParameterSource parameters = new MapSqlParameterSource();  
  95.         parameters.addValue("userids", userids);  
  96.           
  97.         Integer count = namedJdbcTemplate.queryForObject(sql, parameters, Integer.class);  
  98.         // queryForInt   
  99. //      Integer count = namedJdbcTemplate.queryForInt(sql, parameters);  
  100.         System.out.println(count);  
  101.     }  
  102.       
  103.     /* 
  104.      * 使用MapSqlParameterSource查询,使用RowMapper返回 
  105.      */  
  106.     public void queryUsersByMapSqlParameterSource(List<String> userids){  
  107.         String sql = "select * from user_table u where u.user_id in (:userids )";  
  108.           
  109.         MapSqlParameterSource parameters = new MapSqlParameterSource();  
  110.         parameters.addValue("userids", userids);  
  111.           
  112.         List<UserInfo> userList = namedJdbcTemplate.query(sql, parameters,new RowMapper<UserInfo>(){  
  113.   
  114.             @Override  
  115.             public UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException {  
  116.                 // TODO Auto-generated method stub  
  117.                 UserInfo user = new UserInfo();  
  118.                 user.setUserId(rs.getString("user_id"));  
  119.                 user.setUserName(rs.getString("user_name"));  
  120.                 user.setPassword(rs.getString("password"));  
  121.                 return user;  
  122.             }  
  123.         });  
  124.           
  125.         for (UserInfo userInfo : userList) {  
  126.             System.out.println(userInfo.getUserId()+"--"+userInfo.getUserName());  
  127.         }  
  128.     }  
  129.       
  130.     public static void main(String[] args) {  
  131.         NamedParameterJdbcTemplateTest test = new NamedParameterJdbcTemplateTest();  
  132.         List<String> userids= new ArrayList<String>();  
  133.         userids.add("user0");  
  134.         userids.add("user1");  
  135.         userids.add("user2");  
  136.         userids.add("user3");  
  137.           
  138. //      test.queryListByMap(userids);  
  139. //      test.queryListByMapSqlParameterSource(userids);  
  140. //      test.querySingle(userids);  
  141. //      test.querySingleByBeanPropertySqlParameterSource();  
  142.         test.queryUsersByMapSqlParameterSource(userids);  
  143.     }  
  144. }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值