2017-07-12 40 views
0

我所要做的就是使用queryForObject從studentstable中選擇用戶名,密碼和角色。如何使用帶有rowMapper的queryForObject從表中獲取一行或多行?

在我的JdbcTemplate語法

public static Object queryForObject(String sql,RowMAPPER mapper,Object ...args) 

的問題是在我的JdbcStudentDAO

public class JdbcStudentDAO implements StudentDAO{ 
    public String getLogin(StudentTO sto) { 

     String sql="select username,password,role from studentstable"; 
     System.out.println(sql); 

在這裏,我不知道什麼是錯低於

 Object obj=JdbcTemplate.queryForObject(sql,new StudentRowMapper(),sto.getUsername(),sto.getPassword(),sto.getRole()); 
     StudentTO sto1=(StudentTO)obj; 
     System.out.println(sto1); 


    return sto1.toString(); 
} 
} 

這是我的RowMapper在哪裏我得到我的數據庫的所有行,如下所示

public class StudentRowMapper implements RowMapper{ 

    public Object mapRow(ResultSet rs) throws SQLException { 

     StudentTO sto=new StudentTO(); 

     sto.setSid(rs.getInt(1)); 
     sto.setName(rs.getString(2)); 
     sto.setUsername(rs.getString(3)); 
     sto.setPassword(rs.getString(4)); 
     sto.setEmail(rs.getString(5)); 
     sto.setPhone(rs.getLong(6)); 
     sto.setRole(rs.getString(7)); 
     return sto; 
    } 


} 

這是StudentDAO

public interface StudentDAO { 


    public String getLogin(StudentTO sto); 


} 
+0

這將是一個巨大的,如果一些身體告訴我如何檢索僅3特定列出的7 –

+0

什麼你正面臨的錯誤? –

+0

getInt是不是類型的用戶名 –

回答

0

抽象方法這是您的查詢

select username,password,role from studentstable 

你只有3列,他們是不是在你的提取定義的順序.. 。

sto.setSid(rs.getInt(1)); 
    sto.setName(rs.getString(2)); 
    sto.setUsername(rs.getString(3)); // This is actually index 1 
    sto.setPassword(rs.getString(4)); // This is actually index 2 
    sto.setEmail(rs.getString(5)); 
    sto.setPhone(rs.getLong(6)); 
    sto.setRole(rs.getString(7));  // This is actually index 3 

因此,你需要這個

sto.setUsername(rs.getString(1)); 
    sto.setPassword(rs.getString(2)); 
    sto.setRole(rs.getString(3));  

而其他屬性是默認

+0

但它不工作的兄弟 –

+0

你能解釋你的答案 –

+0

我已經做了解釋....什麼是你得到的確切錯誤? –

相關問題