我目前正在Tomcat 8上使用Jersey开发REST api。由于我目前正在实现数据库连接池,我发现我的开放和关闭连接的方法远非好。
我已将我的项目拆分为3个包:
在UserResource中,我创建一个UserDAO对象并调用例如
@GET
public List<User> getUsers(){
return userDAO.getAll()
}
在UserDAO类中的我在每个函数中创建一个新连接,例如:
public List<User> getAll(){
List<User> users;
Connection conn = ConnectionManager.getConnection();
PreparedStatement stmt = conn.prepareStatement("my example query");
ResultSet rs = stmt.executeQuery();
.
.
.
return users;
}
ConnectionManager仅用于从连接池中检索新连接。
所以每当我从资源到DAO进行呼叫时,我都必须获得连接。我考虑在Resource中获取连接并将其传递给构造函数中的dao,但这似乎不是一个好的解决方案。
我找不到任何关于如何管理与球衣连接的例子。