Spring中JdbcTemplate使用RowMapper


 1 package com.cxl.demo.dao;  
 2   
 3 import java.sql.ResultSet;  
 4 import java.sql.SQLException;  
 5 import java.util.List;  
 6 import org.springframework.jdbc.core.JdbcTemplate;  
 7 import org.springframework.jdbc.core.RowMapper;  
 8 import com.cxl.demo.entity.User;  
 9 public class UserDaoImpl {  
10     private JdbcTemplate jdbcTemplate;  
11   
12     public void setJdbcTemplate(JdbcTemplate jdbcTemplate) {  
13         this.jdbcTemplate = jdbcTemplate;  
14     }  
15   
16     public List<User> getUserByName(String username) {  
17         String sql = "select * from t_user where username = ?";  
18         Object[] params = new Object[] { username };  
19         List<User> users = null;  
20         /** 
21          * 使用接口实现类 
22          */  
23         users = jdbcTemplate.query(sql, params, new UserRowMapper());  
24         /** 
25          * 使用匿名内部类 
26          * 如果UserRowMapper类只使用一次,单独为其创建一个类多余,可以使用匿名类 
27          * 省略了书写一个实现类 
28          */  
29         users = jdbcTemplate.query(sql, params,  
30                 new RowMapper<User>() {  
31                     @Override  
32                     public User mapRow(ResultSet rs, int rowNum) throws SQLException {  
33                         User user = new User();  
34                         user.setId(rs.getInt("id"));  
35                         user.setUsername(rs.getString("username"));  
36                         user.setPassword(rs.getString("password"));  
37                         return user;  
38                     }  
39                 });  
40         return (users != null && users.size() > 0) ? users : null;  
41     }  
42       
43     public class UserRowMapper implements RowMapper<User> {  
44   
45         @Override  
46         public User mapRow(ResultSet rs, int rowNum) throws SQLException {  
47             User user = new User();  
48             user.setId(rs.getInt("id"));  
49             user.setUsername(rs.getString("username"));  
50             user.setPassword(rs.getString("password"));  
51             return user;  
52         }  
53           
54     }  
55 }

 

posted @ 2018-08-28 11:01  低调的小白  阅读(9750)  评论(0编辑  收藏  举报