关于java中使用jdbc连接数据库的问题
用jdbc连接一个sqlserver数据库,如果
连接失败则间隔五秒后继续尝试连接,尝试连接三次仍然失败后报错。各位大神求帮助啊,希望能给个大概思路,最好给做个例子。谢谢了
jdbc
------解决方案--------------------多次尝试连接,时间间隔可以用Thread.sleep(5000) 控制。
------解决方案--------------------Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
protected void getCon(){
String url = GetJdbc.getInstance().getProperty("url");
String userName = GetJdbc.getInstance().getProperty("userName");
String password = GetJdbc.getInstance().getProperty("password");
while(true){
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
con = DriverManager.getConnection(url, userName, password);
if(con!=null)
{
return break;
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
System.out.println("数据库连接失败");
}
}
------解决方案--------------------定义一个static的state标识,直接catch Exception然后再调用自己,可以设置成功返回connection,执行一次state++,判断state>3,直接return null
------解决方案--------------------Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;
protected void getCon(){
String url = GetJdbc.getInstance().getProperty("url");
String userName = GetJdbc.getInstance().getProperty("userName");
String password = GetJdbc.getInstance().getProperty("password");
try {
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Object ob =new Object();
int count=0;
while (count<3)
{
con = DriverManager.getConnection(url, userName, password);
if(con!=null)
{
break;
}else
{
synchronized(ob)
{
ob.wait(5000);
}
}
}
} catch (Class
NotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
}