gpt4 book ai didi

java - 如何管理自定义数据库连接池

转载 作者:行者123 更新时间:2023-12-01 04:26:00 24 4
gpt4 key购买 nike

我遇到了这个面试问题:您将如何管理数据库连接池?我的想法是:我将创建一个 ArrayBlockingQueue<Connection>,创建连接对象并在 ajvm 启动时将它们放入队列中。然后将其包装为某种形式的枚举单例,这样就只有一个这样的队列,并且它在 JVM 的生命周期内保持 Activity 状态。

然后使用某种实用程序/驱动程序类从队列中获取连接并将它们返回到队列。

我在想对此我还需要说些什么吗?我是否需要使队列线程安全,以便多个请求不具有相同的连接?

最佳答案

在我看来,你在这里遗漏了几点:

  1. 连接返回池时应返回到初始状态。例如,connection.setAutocommit(...);绝对应该恢复

  2. 将 native 连接包装到您自己的 javax.sql.Connection 接口(interface)的实现中来控制和监视在连接上执行的操作不是一个好主意。通过这种模式,您还可以实现一个有值(value)的功能:在 close() 上将连接返回到池;调用

  3. 您需要一些菜单来根据实际的池利用率来控制池中的连接数。看看Java集合中“容量”和“负载因子”是如何实现的,大致了解一下实现思路

  4. 如果连接处于 Activity 状态,则应对其进行监视。对所有可能的数据库进行归档并不是那么容易。

关于java - 如何管理自定义数据库连接池,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18495185/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com