我有一个方法可以返回ResultSet
个对象:
@Repository
public class SomeDAOImpl implements SomeDAO{
@Override
public ResultSet getSomething()
{
...
}
}
这就是我所说的:
@Service
public class SomeServiceImpl implements SomeService{
@Autowired
private SomeDAO someDAO;
@Transactional
@Override
public void doSomething()
{
someDAO.getSomething();
...
}
}
问题:
答案 0 :(得分:2)
1是的,你应该关闭一个ResultSet。
2我建议你返回一个Object而不是ResultSet。
这里的草稿应该是...... Here教程。
@Repository
public class SomeDAOImpl implements SomeDAO{
@Override
public User getSomething(String username){
User user = getJdbcTemplate().queryForObject("SELECT * FROM USER WHERE USERNAME = ?",
new Object[] { username },
new UserMapper()
);
return user;
}
private class UserMapper implements RowMapper<User>{
@Override
public User mapRow(ResultSet rs, int rowNum) throws SQLException {
User user = new User();
user.setId(rs.getInt("ID"));
user.setUsername(rs.getString("USERNAME"));
user.setName(rs.getString("NAME"));
return user;
}
}
}