java数据库自动重连?

java数据库自动重连?,第1张

连接数据库的话不是有个返回值么,如果返回记录的话rs.next!=null

如果没有返回记录rs.next==null

然后你就用rs.next判断

if(rs.next==null)

{

//此处写方法等待五秒重新连接调用这个类

}

else

{

//接受数据库穿出来的值

}

上面如果不行

就写个try catch语句:

try

{

//连接数据库

}

catch(...)

{

//如果有异常,说明数据库还没有启动

//等待五秒重新连接调用这个类

}

看代码,不明白的追问

// 无穷循环,用于自动重新连接网关

while (true) {

// 捕获sleep异常

try {

// 捕获socket异常

try {

// 创建socket连接

socketGateway = new Socket("127.0.0.1", 8888)

// 创建输入输出对象

inStream = new DataInputStream(socketGateway.getInputStream())

outStream = new DataOutputStream(socketGateway.getOutputStream())

byte buf[] = new byte[1]// 数据缓冲区

int intLen// 读缓冲区返回的长度

// 无穷循环,用于读缓冲区数据

while (true) {

// 捕获读缓冲区异常

try {

intLen = inStream.read(buf, 0, 1)

// 可读长度-1则断开连接

if (intLen == -1) {

break

}

// 处理buf

}

// 连接断开

catch (EOFException e) {

break

}

// 接收数据超时

catch (SocketTimeoutException e) {

break

}

// 超过数据包末尾

catch (IOException e) {

break

}

}

} catch (Exception e) {

// 处理socket错误

}

// 休眠1秒后重连

sleep(1000)

} catch (Exception e) {

// 处理sleep错误

}

}

数据库连接数的,所有的连接数都是有连接池管理的,有时候连不上有时候连不上是因为连接池有时候满了,有的时候没有满,可以提供连接数,连接池可以理解为线程池,是需要释放的,所以java中关于jdbc配置会配置超时时间


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9448405.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存