2017-07-15 5 views
-3

この方法で私を助けてください。 Objectとして返す2つの方法がありますが、私は外側の文字列の方法でメソッドを文字列として返すにはどうすればいいですか?内部メソッドやクエリはオブジェクト型にありますか?

public String getLogin(StudentTO sto) { 
    String u = sto.getUsername(); 
    String p = sto.getPassword(); 

    String sql = "select * from studentstable"; 

    Object obj = JdbcTemplate.queryForObject(sql, new RowMapper() { 
     public Object mapRow(ResultSet rs) throws SQLException { 
      rs.beforeFirst(); 
      while (rs.next()) { 
       String userdb=rs.getString("username"); 
       String passdb=rs.getString("password"); 
       String roledb=rs.getString("role"); 
       if(userdb.equals(u) && passdb.equals(p) && roledb.equalsIgnoreCase("admin")) { 
        return "ADMIN"; 
       } else if(userdb.equals(u) && passdb.equals(p) && roledb.equalsIgnoreCase("user")) { 
        return "USER"; 
       } 
       Object obj=string; 
      } 
      return obj; 
     } 
    ///errror i dont know how to call object here or a string 
    // commented out line because it is misplaced. 
    //return rs; 
    }); 

    StudentTO sto1=(StudentTO)obj; 
    System.out.println(sto1); 
    return sto1.toString(); 
} 

が、私はこの方法getLogin()ADMINまたはUSER返すようにしたい場合のreturn文の 出力を保存するために混乱しています。

+0

エラーが発生した場合に新しい例外をスローすることができます。 JavaでExceptionsを操作する方法を知っていますか? – MiguelKVidal

+0

投稿の書式設定に関する説明をすべてお読みください。あなたの質問は本当に奇妙な方法でフォーマットされています。 – GhostCat

+0

plzは私のprblmに結果を得るために解決策を与えることができます –

答えて

0

まずは、あなたのgetLogin()方法を少し変更してみましょう:

public String getLogin (StudentTO sto) { 
    String uName = sto.getUsername(); 
    String uPass = sto.getPassword(); 

    String uRole = findUserRole(uName, uPass); 

    if("admin".equals(uRole) || "user".equals(uRole)) { 
     return uRole .toUpperCase(); 
    } 

    throw new RuntimeException("Wrong role!"); 
} 

それはあなたの方法の簡単なバージョンです。

次に、あなただけのfindUserRole()を実装する必要があります。

public String findUserRole(String name, String pass){ 
    String sql = "SELECT * FROM studentstable where username = ?"; 
    // execute and fetch data 
    if(passdb.equals(pass) { 
     return roledb; 
    } 
    throw new RuntimeException("User not found or wrong password."); 
} 

はそれがお役に立てば幸いです。

+0

JdbcTemplateとqueryForObjectはどうですか? –

+0

rowMapperを使用してdbを選択する必要があります –

+0

JdbcTemplateとRowMapperを使用する必要がありますか? – MiguelKVidal

関連する問題