public Connection getConnection(){
try {
Class.forName(DRIVER);
System.out.println(DriverManager.getLoginTimeout());
connection = DriverManager.getConnection(URL, USERNAME, USERPWD);
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch(SQLException sqle){
sqle.printStackTrace();
}
return connection;
}
代码如上,数据库为sqlserver2012 数据库驱动 sqljdbc42    JDK为1.8.0_111
不考虑连接池的情况
DriverManager.getConnection()每次获取连接的都要几秒才能完成

解决方案 »

  1.   

    你打印的是超时时间没试试connect前后都读一下时间,然后打印出来看看
      

  2.   

    你这是获取连接超时的时间,你要是想测试连接数据库用了多久,可以在driverManager.getConnection前后加上new Date()来看连接的时间
      

  3.   


    public static int getLoginTimeout()获取驱动程序试图登录到某一数据库时可以等待的最长时间,以秒为单位。 
    返回:驱动程序登录时间限制,以秒为单位获取连接的时候可以这样。long start=System.currentTimeMillis();
    connection = DriverManager.getConnection(URL, USERNAME, USERPWD);
    long end=System.currentTimeMillis()-start;
    System.out.println("获取连接的时间:"+end);
      

  4.   

    sqlserver的jdbc将ip当做域名处理,所以先做了域名解析,失败后再当作IP处理所以在C:\WINDOWS\system32\drivers\etc\HOST表中添加一条记录:    域名      192.168.1.xxx
      

  5.   

    hosts中,加一行
    dbserver     实际IPjdbc中,数据库服务器的IP用dbserver代替。dbserver就是域名,可以随便起名字
      

  6.   

    IP 是32位数字,8位一组,使用小数点分隔的4个0-256表示127.0.0.1 可以,它是特殊的IP,表示本机地址,没有任何网络设备也可以访问