Jersey Web应用程序处理数据库连接

5 java rest connection-pooling jersey java-ee

我目前正在Tomcat 8上开发一个带有Jersey的REST api.由于我目前正在实现数据库连接池,我发现我的开放和关闭连接的方法远非好.

我已将我的项目拆分为3个包:

  • 资源(例如:UserResource.java)
  • 模型(例如:User.java)
  • 数据(例如:UserDAO.java)

在UserResource中,我创建一个UserDAO对象并调用例如

@GET
public List<User> getUsers(){
    return userDAO.getAll()
}
Run Code Online (Sandbox Code Playgroud)

在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;
}
Run Code Online (Sandbox Code Playgroud)

ConnectionManager仅用于从连接池检索新连接.

所以每当我从资源到DAO拨打电话时,我都必须获得连接.我考虑在Resource中获取连接并将其传递给构造函数中的dao,但这似乎不是一个好的解决方案.

我找不到任何关于如何管理与球衣的联系的例子.