针对从数据库检索的数据设置变量

Posted

技术标签:

【中文标题】针对从数据库检索的数据设置变量【英文标题】:setting variables against data retrieved from a database 【发布时间】:2013-12-05 13:57:41 【问题描述】:

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

  ResultSet rs = statement.executeQuery("select name, username, password from securitysystem.employee where username = '" + username + "' and password = '" + password + "'");

但是如果我想创建一个变量user=name,我该怎么做呢? name 是指使用上述语句检索到的名称。

【问题讨论】:

【参考方案1】:

首先,您不应该将您的参数直接放入查询字符串中。 而是这样做:

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

怎么样:

while(rs.next()) 
    String user = rs.getString("name");

【讨论】:

以上是关于针对从数据库检索的数据设置变量的主要内容,如果未能解决你的问题,请参考以下文章

从核心数据中检索 UUID 并设置 UUID 变量不起作用

从通过 jQuery/jQueryMobile 中的 AJAX 调用检索到的 JSON 数据正确设置变量

Laravel 集合从每个函数中检索变量结果

针对 PHP 中的数据检索优化的 MySQL 数据库设计

从 Flutter 中的 Firestore 检索数据后的空列表

Paypal IPN 未检索变量