Servlets 我应该将JDBC连接绑定到servlet线程吗?

Servlets 我应该将JDBC连接绑定到servlet线程吗?,servlets,jdbc,connection-pooling,Servlets,Jdbc,Connection Pooling,我正在使用jndi访问dbcp数据源 每次调用static\u dataSource.getConnection()返回新连接时,在一个servlet请求的范围内 在hibernate中有一个函数getCurrentSession()。据我所知,这个函数返回绑定到当前线程的连接。我是否也应该将jdbc连接绑定到线程 我的目标是在一个事务范围内调用复杂的业务逻辑,每个http请求包含许多DAO调用。就像在Spring中一样,我可以用@Transactional注释整个服务类。我建议您不要将JDBC

我正在使用jndi访问dbcp数据源

每次调用
static\u dataSource.getConnection()
返回新连接时,在一个servlet请求的范围内

在hibernate中有一个函数
getCurrentSession()
。据我所知,这个函数返回绑定到当前线程的连接。我是否也应该将jdbc连接绑定到线程


我的目标是在一个事务范围内调用复杂的业务逻辑,每个http请求包含许多DAO调用。就像在Spring中一样,我可以用@Transactional注释整个服务类。

我建议您不要将JDBC连接绑定到线程。使用连接池并在尽可能短的时间内保持连接:从池中获取、执行操作、关闭连接、返回池


您的持久性代码应该与web层完全分离。您应该能够独立于web层测试和使用它。任何将两者联系在一起的操作都会降低持久层的效率。

但我想要的是在一个包含许多DAO调用的事务范围内调用复杂的业务逻辑。就像在Spring中一样,我可以用@Transactional.com注释整个服务类,那么为什么不使用Spring呢?这些想法应该转换为:让拥有用例/事务的对象和业务逻辑所需的所有DAO获得连接,并使其可供所有需要它的DAO使用。然后他们关上它,把它放回游泳池。每个线程一个连接无法很好地扩展。