Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 根据从数据库检索的数据设置变量_Java_Mysql_Jdbc_Database Connection - Fatal编程技术网

Java 根据从数据库检索的数据设置变量

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,我该

我正在使用java(eclipse)构建一个简单的安全系统,并使用MYSQL语句从数据库中提取数据

  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
,除非你只想要第一行;)我假设语句只返回一行,因为它需要用户名和密码。是的,它只返回一行,因为它必须匹配用户名和密码:)谢谢,这个答案很完美!