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

jdbc连接sqlserver 2008没有反应,驱动jar包有,该有的一切都有。就是没反应.
Java code

    try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    System.out.println("加载:com.microsoft.sqlserver.jdbc.SQLServerDriver");
} catch (ClassNotFoundException e) {
    e.printStackTrace();
}
Connection conn = null;
Statement st = null;
ResultSet rs = null;
try {
    System.out.println("获取连接...");
    conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1533;databaseName=test", "sa", "admini");
    System.out.println("连接获取完毕");
    st = conn.createStatement();
    System.out.println("st");
    rs = st.executeQuery("select id from test");
    System.out.println(rs);
    while(rs.next()){
        System.out.println(rs.getString("id"));
    }
} catch (SQLException e) {
    e.printStackTrace();
}finally{
    try {
        rs.close();
        st.close();
        conn.close();
    } catch (SQLException e) {
        e.printStackTrace();
    }
}



如果我改一个错误的密码,它就会提示密码错误。但是密码改成正确的,它就会显示:

加载:com.microsoft.sqlserver.jdbc.SQLServerDriver
获取连接...

到了这一步,就不往下走了。
用了这么多年的jdbc + sqlserver,还是头一次碰到这种问题。请各位大牛帮忙看看吧。

------解决方案--------------------
难道是你的那个监听程序没有开????或者是 肯定有东西没有开 或者是 包得版本不一致 或者是数据库不存在 哦不数据库不存在早就报错了 难道是你连接的驱动类写错了???
------解决方案--------------------
个人认为:你这个最好做一下threaddump.看程序在驱动的那个类型等待,然后再分析。
ps:threaddump方法window用ctrl+break linux用kill -3 id
------解决方案--------------------
首先,sqlserver从工程中连接数据库,要求SQLServer中的服务要启动,然后配置中的Tcp/Ip要启动。
然后,再看看看连接字符串是否正确
------解决方案--------------------
对了,如果你没有刻意的去改的话,我记得我以前用2005的时候,端口是1433,难道08的默认改了?
------解决方案--------------------
还有这里:conn = DriverManager.getConnection("jdbc:sqlserver://localhost:1533;databaseName=test", "sa", "admini");
要不要改成:
jdbc:microsoft:sqlserver://localhost:1433;