Java 根据从数据库检索的数据设置变量
我正在使用java(eclipse)构建一个简单的安全系统,并使用MYSQL语句从数据库中提取数据Java 根据从数据库检索的数据设置变量,java,mysql,jdbc,database-connection,Java,Mysql,Jdbc,Database Connection,我正在使用java(eclipse)构建一个简单的安全系统,并使用MYSQL语句从数据库中提取数据 ResultSet rs = statement.executeQuery("select name, username, password from securitysystem.employee where username = '" + username + "' and password = '" + password + "'"); 但是如果我想创建一个变量user=name,我该
ResultSet rs = statement.executeQuery("select name, username, password from securitysystem.employee where username = '" + username + "' and password = '" + password + "'");
但是如果我想创建一个变量user=name,我该怎么做呢?name是指使用上述语句检索到的名称 那么:
while(rs.next()) {
String user = rs.getString("name");
}
首先,永远不要将参数正确地放入查询字符串中。 相反,请执行以下操作:
PreparedStatement ps = connection.prepareStatement("select name, username, password "+
"from securitysystem.employee where username = ? and password = ?");
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) { //move to 1st result row
String name = rs.getString(1); //first result column
String user = rs.getString(2); //second result column
// ..etc
}
要获得结果,请执行以下操作:
PreparedStatement ps = connection.prepareStatement("select name, username, password "+
"from securitysystem.employee where username = ? and password = ?");
ps.setString(1, username);
ps.setString(2, password);
ResultSet rs = ps.executeQuery();
if (rs.next()) { //move to 1st result row
String name = rs.getString(1); //first result column
String user = rs.getString(2); //second result column
// ..etc
}
当然你的意思是
while
而不是if
,除非你只想要第一行;)我假设语句只返回一行,因为它需要用户名和密码。是的,它只返回一行,因为它必须匹配用户名和密码:)谢谢,这个答案很完美!