我有一些重复的以下代码
rs = prepStmt.executeQuery();
rs.next();
我想将它移动到一个方法,以便我可以重用代码。方法如下:
public static void point(ResultSet rs, PreparedStatement prepStmt){
rs = prepStmt.executeQuery();
result = rs.next();
}
然后我想得到一个列值,比如,String gender = rs.getString(“gender”); 我得到以下异常: java.sql.SQLException:列名称性别无效。当我没有时,错误没有显示出来 封装方法中的逻辑。所以列名是正确的。
有什么想法吗?谢谢!
答案 0 :(得分:2)
您似乎假设对rs
参数的更改将传播到调用代码。它没有赢。 Java中的所有内容都通过值传递 - 包括引用。相反,你应该做的事情如下:
public static ResultSet point(PreparedStatement prepStmt) {
ResultSet rs = prepStmt.executeQuery();
result = rs.next();
return rs;
}
然后您将其称为:
ResultSet rs = point(prepStmt);
(不清楚result
是什么,或者是否真的值得宣布一个额外的方法,以避免直接调用rs.next()
...尤其是当它意味着rs.next()
的结果有点模糊......)