【问题标题】:Retrieve Data from a SQL Query (SELECT FROM WHERE) in java从 Java 中的 SQL 查询(SELECT FROM WHERE)中检索数据
【发布时间】:2015-08-31 23:28:07
【问题描述】:

我想知道是否有任何其他方法可以从 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循环还有其他方法来检索数据吗?

【问题讨论】:

    标签: java mysql sql-server


    【解决方案1】:

    while 循环内的if 条件是完全多余的 - where 子句负责处理它并确保从此查询返回的任何数据都具有等于 @ 值的 login 字段987654325@。

    如果您确定这样的行不超过一行(例如,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
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-16
      • 2020-12-15
      • 2023-01-11
      • 2021-08-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-26
      相关资源
      最近更新 更多