2017-04-21 97 views
0

我想從RandevufiltreSorgu.java得到doktor [0],doktor [1],secilenBolum。我在randevusec中創建了RandevufiltreSorgu類的對象。但是當我運行查詢時,我無法獲得我想要的值。沒有使用繼承。我能做什麼?從另一個Java類獲取值

public class randevusec { 
    Connection conn = null; 
    PreparedStatement ps = null; 
    ResultSet rs = null; 

    public ResultSet saatler() throws SQLException, Exception { 
     randevufiltreSorgu nesne = new randevufiltreSorgu(); 
     try { 
      Class.forName("org.postgresql.Driver"); 
      conn = DriverManager.getConnection("jdbc:postgresql://localhost:5432/tipmerkezivt", "postgres", "2569"); 
      ps = conn.prepareStatement(
        "WITH Q1 AS(\n" + " select * from doktor natural join bolum where dr_adi='" + nesne.doktor[0] 
          + "' and dr_soyadi='" + nesne.doktor[1] + "' and bolum.b_adi='" + nesne.secilenBolum + "'\n" 
          + " )\n" + " select cs_saat from doktorun_programi natural join Q1\n" + " ", 
        ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE); 
      rs = ps.executeQuery(); 
      return rs; 
     } catch (Exception e) { 
      throw new Exception("Bağlantı başarısız!"); 
     } 

     finally { 
      conn.close(); 
     } 
    } 
} 
+0

doktor的類型是什麼?它是一個字符串嗎? –

+2

你應該查看一個JDBC教程,該教程描述瞭如何使用準備好的語句等來正確地執行此操作。一般來說,將JDBC資源(如結果集或語句)聲明爲類中的字段或在方法之間傳遞它們是不好的做法,因爲它們應該具有最小範圍(您想盡快關閉/釋放它們)。取決於你的JDBC驅動程序的實現,因爲你總是調用'conn.close();'方法結束時,結果集也可能會被關閉。而不是返回結果集,遍歷它並返回一個POJO集合。 –

回答

0

這是很難理解你的代碼,因爲它主要是外語,但是當你構建doktor[0]doktor[1],在他們面前把關鍵字public static你可以做的是。