我試圖以檢索使用SQL查詢語句爲什麼Spring RowMapper僅返回結果集中的最後一條記錄?
"Select ADMIN_USER.ID UserID, ADMIN_USER.USER_NAME Name, ADMIN_USER.PASSWORD Password, ADMIN_USER.FULL_NAME fullName , ADMIN_USER.PRIVILEGE, ADMIN_USER.PROVIDER_ID ,PROVIDERS.ID providerID,PROVIDERS.USER_NAME provider from ADMIN_USER,PROVIDERS where ADMIN_USER.PROVIDER_ID=PROVIDERS.ID",
2個數據庫表(ADMIN_USER和提供商)(即具有提供商的用戶),這是我的方法 `公開名單getUsers(){
return DS.query(sqlQuery,new RowMapper<User>() {
public User mapRow(ResultSet rs, int rowNum)
throws SQLException {
User user = new User();
user.setId(rs.getInt("UserID"));
user.setUserName(rs.getString("Name"));
user.setPassword(rs.getString("Password"));
user.setFullName(rs.getString("fullName"));
user.setPrivilage(rs.getString("PRIVILEGE"));
Provider provider=new Provider();
provider.setId(rs.getInt("providerID"));
provider.setName(rs.getString("provider"));
user.setProvider(provider);
return user; }}); }`
但它只返回來自Method(結果集)的最後一條記錄,因爲list.size()顯示size = 1而不是4!
我認爲連接是正確的,因爲結果記錄顯示正確的連接,但我認爲在RowMapper中的問題?
是否有另一種方法或方法來從2個連接的表中檢索數據(使用Spring,JDBC,NamedParameterJdbcTemplate)?
在此先感謝
你有測試此查詢的Java之外看到它返回你期望的結果?另外,什麼是DS?如果您使用的是spring,我可以向您展示一個使用jdbcTemplate的示例。 – EricF
是的,我測試了它,效果很好 - DS是NamedParameterJdbcTemplate對象---請如果你有一個使用多個表的例子給我,並試圖告訴我這個結果的原因? –