Java 用于连接池的C3P0API
我发现c3p0连接池每次为连接创建新对象时,例如假设我有5个连接池,当我在使用该关闭连接后从池中获取连接时,然后每次再次获取连接获取新的哈希代码,那么我们如何说这是连接池..如果每次pool创建一个新连接然后pool如何知道特定连接已关闭???从连接池获得的连接通常是物理连接周围的包装器(代理),这也是c3p0使用的方法。这是为了将实际物理连接与其用户隔离,并允许拦截关闭操作以将连接返回到池。此外,此包装器通过作为闭合连接的方式保护物理连接(以及应用程序的其他部分)不受错误代码的影响。例如,代码试图在关闭连接后继续使用连接,这可能导致难以诊断竞争条件或其他奇怪的行为,相反,将得到一个连接关闭错误Java 用于连接池的C3P0API,java,jdbc,c3p0,Java,Jdbc,C3p0,我发现c3p0连接池每次为连接创建新对象时,例如假设我有5个连接池,当我在使用该关闭连接后从池中获取连接时,然后每次再次获取连接获取新的哈希代码,那么我们如何说这是连接池..如果每次pool创建一个新连接然后pool如何知道特定连接已关闭???从连接池获得的连接通常是物理连接周围的包装器(代理),这也是c3p0使用的方法。这是为了将实际物理连接与其用户隔离,并允许拦截关闭操作以将连接返回到池。此外,此包装器通过作为闭合连接的方式保护物理连接(以及应用程序的其他部分)不受错误代码的影响。例如,代码
因此,您从池中获得的连接每次都有不同的标识,因为它实际上每次都是一个新的“逻辑”连接;恰好重用(包装)池中的物理连接。这意味着每次colse方法调用连接时,池创建的新连接将填充关闭连接的位置,对吗???@user3497147否。当您的代码调用连接上的
close()
时(这是一个包装,而不是到数据库的物理连接!),此包装器将开始表现为闭合连接,同时底层物理连接将返回到连接池以供重用。这些物理连接位于哪个池中哪个引用bean?对不起,我不明白你在问什么。