【问题标题】:Java: Empty ResultSet when retrieving record from MySQLJava:从 MySQL 检索记录时为空 ResultSet
【发布时间】:2012-06-27 10:24:45
【问题描述】:

我正在使用 netbeans 和 mysql。我有一个名为employee 的表,其中包含以下字段“emp_id、emp_name、intime、date。我尝试使用此查询检索特定记录:

SELECT intime FROM employee WHERE emp_id='1' AND date='25/06/12'

我收到一条错误消息 empty resultset,但该表包含该特定记录。为什么会出现这个错误?

error: dsdcom.mysql.jdbc.JDBC4ResultSet@d20b73

【问题讨论】:

  • 请提供一些关于如何连接到数据库、如何执行命令等的代码...
  • ...可能还有表结构和数据行
  • 使用 HeidiSQL 或类似的东西直接在 mysql 中运行上述查询。并确保它返回您想要的结果。通过使用此方法,您可以更正查询中的错误。如果查询返回正确的结果,则提供您的连接相关代码以检查错误
  • 它返回 0 行,但表包含该类型的记录
  • Class.forName("com.mysql.jdbc.Driver"); DriverManager.getConnection("jdbc:mysql://localhost:3306/attendance", "root", "karma");

标签: java mysql resultset


【解决方案1】:

可能日期字段是关键字或数据库表数据字段某些列是空的,我建议你 仔细检查。

【讨论】:

    【解决方案2】:

    使用 HeidiSQL 或类似的东西直接在 mysql 中运行上述查询。并确保它返回您想要的结果。通过使用此方法,您可以更正查询中的错误。

    【讨论】:

    • 我运行了这个查询,但它返回了 0 行
    • 你的意思是你直接在MySql中运行查询吧?那么您的查询中应该有一些问题。错误可能在查询的“date='25/06/12'”部分。
    • 请执行“SELECT intime FROM employee WHERE emp_id='1'”并告诉我结果
    • 我正在从文本框中获取日期值..并将该值与表内容匹配..并从表中检索记录。表中日期字段的数据类型是文本..所以有什么问题..我猜不出来
    • 我试过这个它给出错误:MySQL返回一个空的结果集
    【解决方案3】:

    尝试使用PreparedStatement编写/执行查询,

    String sql="Select intime from employee where emp_id=? and date=?";
    PreparedStatement statement=conn.prepareStatement(sql);
    statement.setInt(1,1);
    statement.setDate(2,java.sql.Date.valueOf("2012-06-25"));
    ResultSet rs=statement.executeQuery();
    if(rs.next())
     {
       //found
     }
    

    【讨论】:

      【解决方案4】:

      试试类似的东西

      SELECT intime FROM employee WHERE emp_id='1' AND date like '25/06/12'
      

      【讨论】:

      • 我已经尝试过了,但它给出了错误:MySQL 返回了一个空结果集(即零行)。
      猜你喜欢
      • 2010-09-19
      • 1970-01-01
      • 2016-01-04
      • 1970-01-01
      • 2015-09-13
      • 1970-01-01
      • 2019-04-25
      • 1970-01-01
      • 2012-04-12
      相关资源
      最近更新 更多