Java 当内部方法或查询为对象类型时,如何获取作为字符串返回的方法?
请帮我用这个方法。 有两种方法作为对象返回,我对存储感到困惑 外字符串方法中if返回语句的输出Java 当内部方法或查询为对象类型时,如何获取作为字符串返回的方法?,java,string,jakarta-ee,jdbc,methods,Java,String,Jakarta Ee,Jdbc,Methods,请帮我用这个方法。 有两种方法作为对象返回,我对存储感到困惑 外字符串方法中if返回语句的输出 public String getLogin(StudentTO sto) { String u = sto.getUsername(); String p = sto.getPassword(); String sql = "select * from studentstable"; Object obj = JdbcTemplate.queryForObject
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
首先,让我们稍微更改一下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()
:
希望有帮助。如果出现错误,您可以
抛出一个新异常。你知道如何在Java中处理异常吗?请阅读所有关于如何设置帖子格式的说明。你的问题的格式真的很奇怪。请问任何人都能给我一个解决方案,让我的问题得到结果吗prblm@MiguelKVidal我知道例外情况你应该用WHERE子句查找,不扫描整个表。JdbcTemplate和queryForObjectit如何?必须使用rowMapper选择数据库您必须使用JdbcTemplate
和rowMapper
?
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." );
}