【问题标题】:How can I know if a SQL select query from Java to SQL Server didn't return any results?我如何知道从 Java 到 SQL Server 的 SQL 选择查询是否没有返回任何结果?
【发布时间】:2018-09-17 22:13:34
【问题描述】:

我想知道从 Java 到 SQL Server 的 SELECT 查询是否不返回任何结果,因为我试图在数据库中进行“验证”以了解 User 是否已经存在,所以如果SELECT查询返回false,例如,我知道给定的user不存在,我可以将它添加到数据库中。

Connection c = ConexionSQL.Conexion.getConection();
try {
    Statement select = c.createStatement();
    ResultSet r = select.executeQuery("SELECT * FROM Usuario WHERE id="+id);

    if(r.next()) {
        //Show message that the user already Exists
    }
    else {
        //Add user to the database
    }
}
catch(Exception ex) {
    System.out.println("No se puedo realizar el select");
    ex.printStackTrace();
}

【问题讨论】:

  • 您的问题到底是什么?您显示的代码已经可以满足您的需求。您需要解释为什么它不适合您,或者为什么您需要不同的解决方案。

标签: java sql-server jdbc


【解决方案1】:

我猜你的代码可以工作,但你可以使用r.isBeforeFirst(),而不是使用r.next(),因为如果有数据,你就不必回溯来取回它。

总之,isBeforeFirst() 如果光标不在第一行之前或没有行,则返回 false。

【讨论】:

  • isBeforeFirst() 对于TYPE_FORWARD_ONLY 结果集是可选的,因此依赖它不是一个好主意,因为它可以抛出SQLFeatureNotSupportedException
猜你喜欢
  • 2014-10-29
  • 1970-01-01
  • 2014-07-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-11
  • 1970-01-01
相关资源
最近更新 更多