2016-11-25 33 views
-1

與JDBC的連接工作正常。但我沒有得到任何輸出。 這是訪問數據庫表的代碼。 文件名 - FlightDB.java我想從選擇查詢的結果集中創建一個java對象

public static Flight selectFlight(Flight flight) throws SQLException{ 
     PreparedStatement ps = null; 
     ResultSet rs = null; 
     String q1 = "Select * from Flights1 f order by f.time"; 
     Flight flight1 = null; 
     try{ 
      ps = connection.prepareStatement(q1); 
      rs = ps.executeQuery(); 
      while(rs.next()){ 
       flight = Display.showFlights(rs); 
      // flight1 = new Flight(); 
//    flight1.setflno(rs.getInt(1)); 
//    flight1.settime(rs.getTimestamp(2)); 
      } 
     } 
     finally{ 
      closeResultSet(rs); 
      closePreparedStatement(ps); 
     } 
     return flight; 

    } 

這是頂級代碼的一部分------------ 文件名:Display.java

static Flight showFlights(ResultSet rs) throws SQLException { 
     Flight flight1 = new Flight(); 
//  Flight flight = new Flight(flno,time); 
//  FlightDB.selectFlight(flight); 
     flight1.setflno(rs.getInt(1)); 
     flight1.settime(rs.getTimestamp(2)); 
     System.out.println("New flight " + flight1.getflno()); 
     return flight1; 
} 

這是我的班Flight ---- Flight.java

public Flight() { 
      flno = 0; 
      time = null; 
     } 
     public Flight(int flno ,Timestamp time) 
     { 
      this.flno = flno; 
      this.time = time; 

     } 
     public int getflno(){ 
      return flno; 
     } 
     public void setflno(int flno){ 
      this.flno = flno; 
     } 
     public Timestamp gettime(){ 
      return time; 
     } 
     public void settime(Timestamp time){ 
      this.time = time; 
     } 

謝謝你看這段代碼。我不知道我哪裏出錯了。你能幫我解決這個問題嗎?謝謝。

+0

線'的System.out.println( 「新飛」 + flight1.getflno());'嘗試concatentate從'Flight.getflno'了'int'與靜態字符串字面意思'「新航班」'。這只是您自己的ORM嘗試的許多問題之一。 – Tersosauros

回答

0

是您的表名是Flights1 您是否看到日誌中有任何異常? 你可以試試這個

ps = connection.prepareStatement(q1); 
     rs = ps.executeQuery(); 
     while(rs.next()){ 
Flight flight1 = new Flight(); 
flight1.setflno(rs.getInt(1)); 
flight1.settime(rs.getTimestamp(2)); 
System.out.println("New flight " + flight1.getflno());} 
+0

是表模式是Flights1(flno int,時間戳) – user7207595

+0

是的,它的工作。我添加了代碼。並將Display.java代碼更改爲靜態Flight showFlights(ResultSet rs)引發SQLException Flight1 = new Flight(); FlightsDB.selectFlight(flight1); return flight1; } } – user7207595

相關問題