日期:2014-05-20  浏览次数:20766 次

关于JDBC连接到sqlserver2005数据库的
代码的内容是:
Java code
package JDBC;
import java.sql.*;
public class firstConnection {
    public static void main(String[] args) {
        Connection conn=null;
        try{
        Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
                
        String uri="jdbc:sqlserver://localhost:1433;DatabaseName=stuDb";
        String user = "sa",password = "sa";
        conn = DriverManager.getConnection(uri,user,password);
        System.out.println("Conection success!");
        conn.close();
        }catch(ClassNotFoundException e)
        {
            System.out.println("数据库加载失败!");
        }catch(SQLException e)
        {
            System.out.println("连接创建失败!");
            System.out.println(e);
        }catch(Exception e)
        {
            System.out.println("未知错误!");
        }        
    }
}


错误:连接创建失败!
com.microsoft.sqlserver.jdbc.SQLServerException: 到主机 的 TCP/IP 连接失败java.net.ConnectException: Connection timed out: connect
sql设置:
SQL server2005网络设置--》MSSQLSERVER的协议--》TCP/IP已启用,IPALL中TCP动态端口以及TCP端口用 1433和2490的各种组合均已试过,无效,同一个错误。SQL NATIVE CLIENT中的配置--》客户端协议TCP/IP也已经启用。
求答案。

------解决方案--------------------
conn = DriverManager.getConnection(uri,user,password);这一步抛出异常。原因可能是url不对,你试试这个,jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=stuDb
------解决方案--------------------
数据库设置问题,用客户端直接能连接吗?
另外uri换成"jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=test";
试一下,祝你成功
------解决方案--------------------
你单步调试下,看那出错的,conn = DriverManager.getConnection(uri,user,password);没赋进值的可能性比较大
------解决方案--------------------
首先,你的驱动包是哪个?
2005的话应该是sqlserver jdbc3.0以上
sqljdbc4.jar

还有,你可以直接用Telnet看看连接是不是有问题
命令行 -> telnet localhost 1433