0

我有一个到数据库的静态 java 连接。

第一个线程

通过我的静态连接,我正在创建一个语句并调用 executeQuery() 方法。此时我正在等待,因为查询结果非常大,我必须等待超过 15 分钟。

第二个线程

使用相同的静态连接,我正在尝试调用 createStatement() 方法。这里第二个线程被阻塞了。

有很多方法可以解决这个问题,但我找不到任何地方为什么这种方法不起作用。有任何想法吗?

4

1 回答 1

0

Connection常见的方式是通过Sockets机制实现对数据库的单向。最好说,您的单曲connection是某种管道,用于每次执行一个的具体查询。

很难想象这样一种最优和高性能的代码实现,尽管一个套接字多个查询及其结果是并行发送的。这样的实现可能会导致与数据包的混淆,至少会导致它们丢失。

正如上面评论中提到的karmanaut,您需要实现DB pool,即连接池,它将同时用于每个语句。

于 2013-03-28T14:37:43.627 回答