2017-04-21 38 views
0

doktor [0]、doktor [1]、secilenBolumをRandevufiltreSorgu.javaから取得したいとします。 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を入れたときに何を行うことができますすることです。

関連する問題