Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.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 用于连接池的C3P0API_Java_Jdbc_C3p0 - Fatal编程技术网

Java 用于连接池的C3P0API

Java 用于连接池的C3P0API,java,jdbc,c3p0,Java,Jdbc,C3p0,我发现c3p0连接池每次为连接创建新对象时,例如假设我有5个连接池,当我在使用该关闭连接后从池中获取连接时,然后每次再次获取连接获取新的哈希代码,那么我们如何说这是连接池..如果每次pool创建一个新连接然后pool如何知道特定连接已关闭???从连接池获得的连接通常是物理连接周围的包装器(代理),这也是c3p0使用的方法。这是为了将实际物理连接与其用户隔离,并允许拦截关闭操作以将连接返回到池。此外,此包装器通过作为闭合连接的方式保护物理连接(以及应用程序的其他部分)不受错误代码的影响。例如,代码

我发现c3p0连接池每次为连接创建新对象时,例如假设我有5个连接池,当我在使用该关闭连接后从池中获取连接时,然后每次再次获取连接获取新的哈希代码,那么我们如何说这是连接池..如果每次pool创建一个新连接然后pool如何知道特定连接已关闭???

从连接池获得的连接通常是物理连接周围的包装器(代理),这也是c3p0使用的方法。这是为了将实际物理连接与其用户隔离,并允许拦截关闭操作以将连接返回到池。此外,此包装器通过作为闭合连接的方式保护物理连接(以及应用程序的其他部分)不受错误代码的影响。例如,代码试图在关闭连接后继续使用连接,这可能导致难以诊断竞争条件或其他奇怪的行为,相反,将得到一个连接关闭错误


因此,您从池中获得的连接每次都有不同的标识,因为它实际上每次都是一个新的“逻辑”连接;恰好重用(包装)池中的物理连接。

这意味着每次colse方法调用连接时,池创建的新连接将填充关闭连接的位置,对吗???@user3497147否。当您的代码调用连接上的
close()
时(这是一个包装,而不是到数据库的物理连接!),此包装器将开始表现为闭合连接,同时底层物理连接将返回到连接池以供重用。这些物理连接位于哪个池中哪个引用bean?对不起,我不明白你在问什么。