如果没有返回记录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配置会配置超时时间欢迎分享,转载请注明来源:内存溢出
评论列表(0条)