Java 一个连接可以同时做多种事情吗?
我读了一点关于JDBC的Java 一个连接可以同时做多种事情吗?,java,mysql,jdbc,Java,Mysql,Jdbc,我读了一点关于JDBC的JDBC,我有一个问题 为什么有多个连接(连接池)比只有一个连接更好 连接一次只能做一件事吗 如果是这样,如果您请求连接执行某些操作,而它已经在执行其他操作,会发生什么情况 连接池不允许单个进程/应用利用多个连接。根据维基百科: 连接池是维护的数据库连接缓存,以便在将来需要数据库请求时可以重用连接 当有大量进程/应用程序正在运行时,将使用连接池。如果每个进程/应用程序在每个请求周期开始时创建一个新的数据库连接(并在每个请求周期结束时关闭),那么开销将很大 相反,您可以维护
JDBC
,我有一个问题
- 提交或回滚事务将关闭所有打开的
对象和当前正在执行的ResultSet
语句,除非您使用的是保留游标 如果一个线程提交,它将关闭使用相同连接的所有其他线程的
和语句
结果集
- 执行
会自动关闭先前执行该语句
生成的任何现有打开的语句
如果线程共享结果集
,则一个线程可以关闭另一个线程的语句
结果集
- 避免在线程之间共享
(及其语句
)结果集
- 每次线程执行
,它都应该在放弃语句
连接之前处理结果
- 每次线程访问
,它都应该根据应用程序协议一致地提交或不提交连接
- 有一个线程是“管理”数据库
线程,该线程应处理更高级别的任务,例如建立连接
、提交、回滚、更改连接
属性,例如自动提交、关闭连接
、关闭数据库(在嵌入式环境中),等等连接
- 关闭释放资源不再需要的
和结果集
语句
在阅读了JDBC之后,你对这些问题有什么想法吗?@sherb我的想法是最好有一个连接池,因为一个连接一次只能做一件事,而不是每次都创建一个新的连接,你可以使用一个循环使用的连接,它需要更少的资源。(我不太确定这是否正确,这就是我问的原因)