Spring中JdbcTemplate中使用RowMapper



轉自:https://blog.csdn.net/u012661010/article/details/70049633
1
sping中的RowMapper可以將數據中的每一行數據封裝成用戶定義的類. 2 3 我們在數據庫查詢中,如果返回的類型是用戶自定義的類型(其實我們在數據庫查詢中大部分返回的都是自定義的類)則需要包裝,如果是Java自定義的類型,如:String則不需要. 4 5 如果sping與hibernate 相結合了,基本上是用不到,大多數都是在spring單獨使用時用到. 6 7 可以通過建立內部類實現RowMapper接口,RowMapper中有一個mapRow方法,所以實現RowMapper接口一定要實現mapRow方法,而對自定義類的包裝就在mapRow方法中實現. 8 9 10 package com.cxl.demo.dao; 11 12 import java.sql.ResultSet; 13 import java.sql.SQLException; 14 import java.util.List; 15 import org.springframework.jdbc.core.JdbcTemplate; 16 import org.springframework.jdbc.core.RowMapper; 17 import com.cxl.demo.entity.User; 18 public class UserDaoImpl { 19 private JdbcTemplate jdbcTemplate; 20 21 public void setJdbcTemplate(JdbcTemplate jdbcTemplate) { 22 this.jdbcTemplate = jdbcTemplate; 23 } 24 25 public List<User> getUserByName(String username) { 26 String sql = "select * from t_user where username = ?"; 27 Object[] params = new Object[] { username }; 28 List<User> users = null; 29 /** 30 * 使用接口實現類 31 */ 32 users = jdbcTemplate.query(sql, params, new UserRowMapper()); 33 /** 34 * 使用匿名內部類 35 * 如果UserRowMapper類只使用一次,單獨為其創建一個類多余,可以使用匿名類 36 * 省略了書寫一個實現類 37 */ 38 users = jdbcTemplate.query(sql, params, 39 new RowMapper<User>() { 40 @Override 41 public User mapRow(ResultSet rs, int rowNum) throws SQLException { 42 User user = new User(); 43 user.setId(rs.getInt("id")); 44 user.setUsername(rs.getString("username")); 45 user.setPassword(rs.getString("password")); 46 return user; 47 } 48 }); 49 return (users != null && users.size() > 0) ? users : null; 50 } 51 52 public class UserRowMapper implements RowMapper<User> { 53 54 @Override 55 public User mapRow(ResultSet rs, int rowNum) throws SQLException { 56 User user = new User(); 57 user.setId(rs.getInt("id")); 58 user.setUsername(rs.getString("username")); 59 user.setPassword(rs.getString("password")); 60 return user; 61 } 62 63 } 64 }

 


免責聲明!

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



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