国产成人精品18p,天天干成人网,无码专区狠狠躁天天躁,美女脱精光隐私扒开免费观看

如何使用jdbcTemplate查詢(xún)返回自定義對象集合

發(fā)布時(shí)間:2021-07-27 11:45 來(lái)源:億速云 閱讀:0 作者:小新 欄目: 編程語(yǔ)言 歡迎投稿:712375056

小編給大家分享一下如何使用jdbcTemplate查詢(xún)返回自定義對象集合,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!

1、在UserInfo.java中添加一個(gè)Map轉換為UserInfo的方法

public static UserInfo toObject(Map map) {
	UserInfo userInfo = new UserInfo();
	userInfo.setId((Integer) map.get(id));
	userInfo.setUname((String) map.get(uname));
	userInfo.setUnumber((Integer) map.get(unumber));
	userInfo.setuRegisterTime((Date) map.get(uregister_time));
	return userInfo;
}
public static List toObject(List> lists){
	List userInfos = new ArrayList();
	for (Map map : lists) {
		UserInfo userInfo = UserInfo.toObject(map);
		if (userInfo != null) {
			userInfos.add(userInfo);
		}
	}
	return userInfos;
}

dao層實(shí)現:

public List findAll() { 
  String sql = SELECT * FROM user_info; 
  List<Map<String,Object>> lists = jdbcTemplate.queryForList(sq); 
  return UserInfo.toObject(lists); 
}

總結:這種方法能夠實(shí)現,但是速度相比很慢。

2、使用jdbcTemplate.query(sql,RowMapper)方式實(shí)現:

dao層實(shí)現

jdbcTemplate.query(sql, new RowMapper<UserInfo>() { 
  @Override 
  public UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException { 
    UserInfo userInfo = new UserInfo(); 
    userInfo.setUname(rs.getString("uname")); 
    userInfo.setUnumber(rs.getInt("unumber")); 
    userInfo.setuRegisterTime(rs.getDate("uregister_time")); 
    return userInfo; 
  } 
});

總結:在其他查詢(xún)方法中無(wú)法重用。

3、 使用RowMapper實(shí)現接口方式,覆蓋mapRow方法:

public class UserInfo implements RowMapper, Serializable{ 
  @Override 
  public UserInfo mapRow(ResultSet rs, int rowNum) throws SQLException { 
    UserInfo userInfo = new UserInfo(); 
    userInfo.setId(rs.getInt(id)); 
    userInfo.setUname(rs.getString(uname)); 
    userInfo.setUnumber(rs.getInt(unumber)); 
    userInfo.setuRegisterTime(rs.getDate(uregister_time)); 
    return userInfo; 
  } 
}

dao層實(shí)現:

public UserInfo getById(Integer id) { 
  String sql = SELECT * FROM user_info WHERE id = ?; 
  UserInfo userInfo = jdbcTemplate.queryForObject(sql, new UserInfo(), new Object[] { id }); 
  return userInfo; 
} 
 
public List findAll() { 
  String sql = SELECT * FROM user_info; 
  List userInfos = jdbcTemplate.query(sql, new UserInfo()); 
  return userInfos; 
}

4、dao層使用

jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper<UserInfo>(Qsfymxb.class));

Spring 提供了一個(gè)便利的RowMapper實(shí)現-----BeanPropertyRowMapper

它可自動(dòng)將一行數據映射到指定類(lèi)的實(shí)例中 它首先將這個(gè)類(lèi)實(shí)例化,然后通過(guò)名稱(chēng)匹配的方式,映射到屬性中去。

例如:屬性名稱(chēng)(vehicleNo)匹配到同名列或帶下劃線(xiàn)的同名列(VEHICLE_NO)。如果某個(gè)屬性不匹配則返回屬性值為Null

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng )、來(lái)自本網(wǎng)站內容采集于網(wǎng)絡(luò )互聯(lián)網(wǎng)轉載等其它媒體和分享為主,內容觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如侵犯了原作者的版權,請告知一經(jīng)查實(shí),將立刻刪除涉嫌侵權內容,聯(lián)系我們QQ:712375056,同時(shí)歡迎投稿傳遞力量。

精品久久久久国产免费| 国产午夜亚洲精品区| 日本一卡二卡3卡四卡在线新区| 色欲蜜桃AV无码中文字幕| 日本高清成本人视频一区| 欧美日韩亚洲国产综合乱|