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();
}
}
}
doktorの種類は何ですか?それは文字列ですか? –
準備された文などで適切にこれを行う方法を説明するJDBCチュートリアルを参照する必要があります。一般に、結果セットや文などのJDBCリソースをクラス内のフィールドとして宣言したり、メソッド間に渡すのは悪い方法です。最小限の範囲(できるだけ早く閉じたり解放したりしたい)。 JDBCドライバの実装によっては、メソッドの最後に 'conn.close();'を呼び出すので、結果セットはおそらく閉じられます。結果セットを返す代わりに、それを反復してPOJOコレクションを返します。 –