为什么java连接不能createstatement()而executeQuery()处于中间处理?

时间:2013-03-28 13:56:36

标签: java static executequery

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

第一个帖子

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

第二线程

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

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

1 个答案:

答案 0 :(得分:0)

通常,数据库的单Connection是通过Sockets机制实现的。更好的说,你的单connection是某种管道,用于具体查询,每次执行一次。

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

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