java - 结果集不迭代指定列的值

标签 java jdbc resultset

我有一个方法,它通过日期对象返回 ResultSet 查询的值。问题是,在我的输出中,它只返回特定列中的最后一个值。我该怎么办?

 public Date getTime(){
      Date date = null;
      DateFormat format;

      try {

              Class.forName("com.mysql.jdbc.Driver");
              Connection con = DriverManager.getConnection(url, "root", "");

              Statement stmt = con.createStatement();

              ResultSet result = stmt.executeQuery("SELECT * FROM error_log WHERE service_source = 'Billbox' ");

              while (result.next()) {  //retrieve data
                  String ds = result.getString("error_date");
                  format = new SimpleDateFormat("M/d/yyyy H:m:s a");

                  date = (Date)format.parse(ds);  

              }
              con.close();

          } catch (Exception ex) {
              Logger.getLogger(LogDB.class.getName()).log( 
                            Level.SEVERE, null, ex);
          }
      return date;
  }

然后在我的主要方法中:

  public static void main(String args[]){        
      TestA ea = new TestA();
      Date ss = ea.getTime();
      System.out.println(ss);
  } 

但这仅返回查询中的最后一个值。我怎样才能打印出其他(较旧的)连同它?

最佳答案

您需要填写查询结果中的日期列表。试试这个:

  public List<Date> getTime(){
      List<Date> dates = new ArrayList<Date>();
      DateFormat format;

      try {

          Class.forName("com.mysql.jdbc.Driver");
          Connection con = DriverManager.getConnection(url, "root", "");

          Statement stmt = con.createStatement();

          ResultSet result = stmt.executeQuery("SELECT * FROM error_log WHERE service_source = 'Billbox' ");

          while (result.next()) {  //retrieve data
              String ds = result.getString("error_date");
              format = new SimpleDateFormat("M/d/yyyy H:m:s a");

              dates.add((Date)format.parse(ds));  

          }
          con.close();

      } catch (Exception ex) {
          Logger.getLogger(LogDB.class.getName()).log( 
                        Level.SEVERE, null, ex);
      }
      return dates;
  }

关于java - 结果集不迭代指定列的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17595984/

相关文章:

java - 使用 Maven 插件 Web.xml 未包含在 War 中

java - 我可以在静态内部类中为 fragment 使用成员变量吗?

java - 创建动态 Web 项目时出现 "java.lang.ClassNotFoundException: com.mysql.jdbc.Driver"错误

java - 无法使用 JDBC 驱动程序连接到本地主机上的 MySQL

java - 如何运行 Resultset.next() 两次?

sql - 试图获得计数结果集的平均值

java - 为什么我在这里会遇到不安全或不安全的操作?

java - 有没有办法确保将线程分配给指定的一组对象?

java - 以极高的速度获取行

java - 从 Java ResultSet 返回值时出现问题