Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么java连接不能创建(),而ExeCuto Queices()在处理的中间呢?_Java_Static_Executequery - Fatal编程技术网

为什么java连接不能创建(),而ExeCuto Queices()在处理的中间呢?

为什么java连接不能创建(),而ExeCuto Queices()在处理的中间呢?,java,static,executequery,Java,Static,Executequery,我有一个到数据库的静态java连接 第一个线程 通过静态连接,我创建一条语句并调用executeQuery()方法。现在我正在等待,因为查询结果非常大,我必须等待15分钟以上 第二个线程 使用相同的静态连接,我尝试调用createStatement()方法。这里第二个线程被阻塞了 有很多方法可以解决这个问题,但我找不到为什么这个方法不起作用。有什么想法吗?通常,到数据库的单个连接是通过套接字机制实现的。更确切地说,您的单个连接是某种管道,用于每次执行一个具体查询 很难想象这样的优化和高性能代码实

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

第一个线程

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

第二个线程

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


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

通常,到数据库的单个
连接是通过
套接字
机制实现的。更确切地说,您的单个
连接是某种管道,用于每次执行一个具体查询

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


如上文注释中所述,您需要实现DB池,即连接池,它将同时用于每个语句。

而不向我们显示我们无法识别的代码。您可能有一些静态同步方法或类似的方法。看起来您正在共享连接,所以这是必然发生的。您可能需要一个数据库池。