针对从数据库检索的数据设置变量
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");
【讨论】:
以上是关于针对从数据库检索的数据设置变量的主要内容,如果未能解决你的问题,请参考以下文章
从通过 jQuery/jQueryMobile 中的 AJAX 调用检索到的 JSON 数据正确设置变量