嗯,我想知道是否有任何其他方法可以从 SQL 查询中获取数据。 我的意思是,我总能找到的“主要”代码是
Connection con = (connect to db)
PreparedStatement st = con.prepareStatement(....);
ResultSet rs = ps.executeQuery();
while (rs.next())
{
//do something
}
但如果我想检索特定数据,例如让我们假设我的查询是
Connection con = L2DatabaseFactory.getInstance().getConnection();
PreparedStatement ps = con.prepareStatement("SELECT login,email FROM accounts WHERE login=?");
ps.setString(1, account);
ResultSet rs = ps.executeQuery();
while (rs.next())
{
if (rs.getString("login").equals(account))
{
email = rs.getString("email");
break;
}
}
除了while循环取数据还有别的方法吗?
最佳答案
while
循环中的 if
条件是完全多余的 - where
子句处理它并确保从该循环返回的任何数据查询将有一个 login
字段,该字段等于 account
的值。
如果您确定这样的行不超过一行(例如,login
列是您表中的唯一标识符),您可以只替换 while
使用 if
循环:
// Check that such a logic exists
if (rs.next()) {
email = rs.getString("email");
}
// for good measures, just double check there isn't more than one
// of these logins:
if (rs.next()) {
throw new Exception ("This cannot be!"); // Or something more sensible
}
关于java - 从 Java 中的 SQL 查询(SELECT FROM WHERE)中检索数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32321397/