我听说过这个"执行周围"的习语(或类似的)是什么?为什么我可以使用它,为什么我不想使用它?
在我的情况下,我正在查询数据库以获取特定的回报(在这种情况下,基于用户名的注册信息).
//Build SQL String and Query Database.
if(formValid){
try {
SQL = "SELECT * FROM users WHERE username=? AND email=?";
Collections.addAll(fields, username, email);
results = services.DataService.getData(SQL, fields);
if (!results.next()){
errMessages.add("User account not found.");
} else {
user = new User();
user.fillUser(results); //Is it ok to pass ResultSet Around?
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
services.DataService.closeDataObjects(); //Does this close the ResultSet I passed to fillUser?
}
}
Run Code Online (Sandbox Code Playgroud)
因此,一旦我查询数据库,如果找到结果,我创建一个新的User对象并用我从数据库收到的数据填充它.我曾经在我将结果集拉入的方法中直接执行所有这些操作,但我意识到我在整个项目中都进行了大量的冗余编码,因此我将其全部移动到一个存在于实际User bean中的中心方法中.
public void fillUser(ResultSet data) throws SQLException{
setUserId(data.getInt("id"));
setFirstName(data.getString("first_name")); …Run Code Online (Sandbox Code Playgroud)