- 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;