Java 将rs移动到方法会导致异常
我有一些重复的以下代码Java 将rs移动到方法会导致异常,java,sql,Java,Sql,我有一些重复的以下代码 rs = prepStmt.executeQuery(); rs.next(); 我想把它移到一个方法,这样我就可以重用代码了。方法如下: public static void point(ResultSet rs, PreparedStatement prepStmt){ rs = prepStmt.executeQuery(); result = rs.next(); } 然后我想得到一个列值,比如stringgender=rs.g
rs = prepStmt.executeQuery();
rs.next();
我想把它移到一个方法,这样我就可以重用代码了。方法如下:
public static void point(ResultSet rs, PreparedStatement prepStmt){
rs = prepStmt.executeQuery();
result = rs.next();
}
然后我想得到一个列值,比如stringgender=rs.getString(“gender”);
我得到以下例外情况:
java.sql.SQLException:列名无效。当我没有显示错误时,错误不会显示
将逻辑封装在方法中。因此,列名是正确的
有什么想法吗?谢谢 您似乎假设对
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()
的结果有些模糊时…你能分享你的完整代码吗?这段代码中没有任何内容表明存在这样的问题?谢谢!我会接受你的建议。