简易连接器对付建立数据库连接时的connection timeout

项目中遇到使用RDS MySQL时频繁的连接失败问题,为了解决建立连接超时无响应的情况,创建了一个改进的数据库连接器。通过内部类线程并发拨号,连接成功则将连接对象存入ArrayList。当调用getConnection()时,检查ArrayList是否为空,如果为空则启动连接线程,否则返回已有连接。同时设置连接超时时间为1000ms,超时后强制断开并重连。此方法仅用于个人娱乐,非框架解决方案。
摘要由CSDN通过智能技术生成

最近做项目,数据库用的百度的RDS MYSQL,非常坑爹,十次连接至少三次是连不上的,而且,连不上一点提示都没有,就那么卡着,等十几分钟都没有回应。一直找不到比较合适的解决方法。百度上搜索到的内容都与这个问题无关,都是已经建好的连接超时,但是没有提到怎么才能处理建立连接的时候超时等上几个小时没回应这种坑爹问题。这次就做了一个连接拨号器,是在普通的数据库连接器的基础上改进的,原理也很简单。上代码。
代码的主体思路就是用三个内部类线程同时进行拨号,拨号成功就把连接对象放进arraylist。getconnection()方法执行的时候就检测arraylist是不是空的,如果是空的,就启动进行连接的线程,如果List里面有料就把连接对象提出来用。另外,数据库连接的时候,connection timeout的时间有时候非常长,而且完全就没有回应,这里直接让它只能等1000ms,超过没有连上直接暴力把连接线程更新掉重连。

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.ArrayList;

import com.mysql.jdbc.Statement;

public class DatabaseConnection 
{
  private static final String DBDRIVER = "com.mysql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值