gpt4 book ai didi

java - Spring MVC 3.0 从 Sql 查询中获取值

转载 作者:行者123 更新时间:2023-12-02 07:39:23 25 4
gpt4 key购买 nike

我是使用 Spring MVC 3.0 的新手。我正在编写一个自定义身份验证类,我想知道如何将 SQL 查询中的值提取到变量中?这是我想要实现的目标的示例,省略了我要询问的一些代码;

import java.sql.ResultSet;
import java.sql.SQLException;

import org.apache.log4j.Logger;
import org.springframework.jdbc.core.simple.ParameterizedRowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;

import com.crimetrack.DAO.LoginDAO;
import com.crimetrack.business.Login;

public class JdbcLoginDAO extends JdbcDaoSupport implements LoginDAO {

private final Logger logger = Logger.getLogger(getClass());
String dbUserName;
String dbPassword;

public boolean AuthenticateUser(Login login) {
logger.debug("Authenticating User");

String sql = "SELECT userName, password FROM tblofficers WHERE userName = :userName AND password = :password ";

//code for parameters : userName and password using login.getPassword() and login.getUsername()
//and code to get vaules out from query for comparison


if (dbUserName == login.getUserName()) {

if (dbPassword == login.getPassword()){
return true;
}
}

return false;

}


public static class LoginMapper implements ParameterizedRowMapper<Login>{

public Login mapRow(ResultSet rs, int rowNum) throws SQLException {
Login dbLogin = new Login();
dbLogin.setUserName(rs.getString("userName"));
dbLogin.setPassword(rs.getString("password"));
return dbLogin;
}
}

}

最佳答案

使用 JDBCTemplate 和 BeanPropertyRowMapper 将查询作为“Login”类的另一个实例返回,然后比较对象。

您必须查看 JDBCTemplate 来定义数据库连接,但最终会如下所示:

UserLogin authenticLogin = (UserLogin) db_connection.queryForObject(sql, new BeanPropertyRowMapper(UserLogin.class));

if (userLogin.getPassword() == authenticLogin.getPassword()) {
return true
}

基本上,BeanPropertRowMapper 将创建一个类的新实例,设置与查询返回的列同名的任何属性。

关于java - Spring MVC 3.0 从 Sql 查询中获取值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11786534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com