この文を実行してjavaを処理する方法を教えてください。戻り値を取得し、次にそれを行う方法で従業員に選択されている次の結果セットを取得することは可能ですか?別の結果セットを持つDBからの戻り値
すべての例が1つのSELECTの結果であり、DBからのRETURNでクエリを見つけることができないため、私が望むことを実行するためにGoogleで正確な方法を見つけることができません。しかし、questionによれば、.NETができるようにDB(java)から複数の結果セットを管理することは可能です。
私はpostgresql 9.4を使用していますが、私は何をしようとしているのかにはストアドproc(関数)を使用したくありません。
この
は私がテストしようとしてきたコードですが、私はあなたが事実から離れて(物事を過度に複雑されている1public Employee getEmployee(Connection con, String code) {
Employee employee = new Employee();
try {
String query =
"IF EXISTS(SELECT * FROM employee WHERE code = ?) THEN "
+ "RETURN 1; "
+ "ELSE "
+ "RETURN 2; "
+ "END IF; "
+ "SELECT EmployeeID, FirstName FROM employee where code = ?; ";
PreparedStatement stmt = con.prepareStatement(query);
stmt.setString(1, code);
stmt.setString(2, code);
boolean hasResults = stmt.execute();
int returnValue = 0;
while(hasResults){
ResultSet rs = stmt.getResultSet();
returnValue = rs.getInt(1);
if(returnValue == 1){
hasResults = stmt.getMoreResults();
while(hasResults){
employee.setId(rs.getInt("EmployeeID"));
employee.setFirstName(rs.getString("FirstName"));
}
}
}
return employee;
} catch (Exception e) {
System.out.println(e.getMessage());
return null;
}
私はあなたの答えをありがとう。私の質問は一例でした。いずれにしても、戻り値の後にクエリーを続ける方法はありますか。複数のクエリを実行し、1つのトランザクション/実行で複数の結果セットを取得したい。しかし、同時に私は機能を実行することができますが、特にDBMSで事前コンパイルされたものではなく、クエリ文字列として機能したいと考えています。 –