【发布时间】:2016-04-18 04:12:35
【问题描述】:
我怎样才能执行这个语句并处理它java。是否有可能获得一个返回值,然后是下一个结果集,即按照我的方式选择员工?
我在 Google 上找不到执行我想要的准确方法,因为所有示例都是单个 SELECT 的结果,并且无法从 DB 中找到带有 RETURN 的查询。但是根据这个question,可以像.NET一样管理来自DB(java)的多个结果集。
我正在使用 postgresql 9.4,我不想使用存储过程(函数)来做我想做的事情。
这是我一直在尝试测试的代码,但我得到一个异常,即“IF”第 1 行存在语法错误
public 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;
}
【问题讨论】:
标签: java jdbc prepared-statement resultset postgresql-9.4