当程序运行到Connection con=DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb", "sa", "sasa");
时提示错误如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at heyong.com.DbHelper.getConnection(DbHelper.java:18)
at heyong.com.Test.main(Test.java:13)
java.lang.NullPointerException
at heyong.com.Test.main(Test.java:18)
时提示错误如下:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at heyong.com.DbHelper.getConnection(DbHelper.java:18)
at heyong.com.Test.main(Test.java:13)
java.lang.NullPointerException
at heyong.com.Test.main(Test.java:18)
调试过程中注意重启sql服务,尤其是测试防火墙因素时(吃了点亏,哈哈)
如运行程序时出现 "Error establishing socket" 错误,则应进行如下调试:
1 检查SQL SERVER 是否允许远程访问.具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
2)在相应"数据库"上单击右键,选择"属性"
3)选择"连接"选项卡,检查"远程服务器连接"下,RPC服务是否选择.2 使用telnet IP地址 1433,系统是否提示连接出错,如系统提示出错
检查是否防火墙屏蔽了SQL SERVER 或 java IDE 的网络访问端口
如果是,关闭防火墙,重新启动SQL SERVER和java IDE,进行测试,
如果系统仍提示上述错误,尝试下列步骤3 检查SQL SERVER 端口号及是否启用了TCP/IP协议,具体步骤:1)打开"企业管理器",打开控制台根目录>SQL Server 组>数据库
2)在相应"数据库"上单击右键,选择"属性"
3)选择"常规"选项卡,点击"网络配置",如启用的协议中无"TCP/IP协议"将其加入
4)选择"TCP/IP协议",点击"属性",检查其端口号是否为1433
5)如端口号为1433将其修改为其它端口号,修改jdbc连接语句,将端口号同样改为新启用的端口号,如jdbc:microsoft:sqlserver://server_name:1400(假设新端口号为 1400)
提示
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败。
我用ms sql2005用sa sasa就能登陆JspDb
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at heyong.com.DbHelper.getConnection(DbHelper.java:18)
at heyong.com.Test.main(Test.java:13)
java.lang.NullPointerException
at heyong.com.Test.main(Test.java:18)
at java.sql.DriverManager.getConnection(DriverManager.java:602)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at heyong.com.DbHelper.getConnection(DbHelper.java:18)
at heyong.com.Test.main(Test.java:13)
java.lang.NullPointerException
at heyong.com.Test.main(Test.java:18)
2000驱动提示:java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]用户 'sa' 登录失败。
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processErrorToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSLoginRequest.processReplyToken(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSRequest.processReply(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown Source)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:582)
at java.sql.DriverManager.getConnection(DriverManager.java:185)
at heyong.com.DbHelper.getConnection(DbHelper.java:18)
at heyong.com.Test.main(Test.java:13)
java.lang.NullPointerException
at heyong.com.Test.main(Test.java:18)
13行是什么?
2005驱动(sqljdbc.jar)提示No suitable driver found for jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb
package heyong.com;import java.sql.*;public class Test {
public static void main(String[] args) {
try {
Connection con = DbHelper.getConnection(); String sql = "select * from FirstLevelTitle";
Statement s = con.createStatement();
ResultSet rs = s.executeQuery(sql);
while (rs.next()) {
System.out.println(rs.getInt("id"));
}
} catch (Exception e) {
e.printStackTrace();
}
}}DbHelper.java
package heyong.com;import java.sql.*;public class DbHelper {
private static final String conString = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; private static final String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=JspDb"; private static final String name = "sa"; private static final String pwd = "sasa"; public static Connection getConnection() {
Connection con = null;
try {
Class.forName(conString);
System.out.println("Connection Successful!");
con = DriverManager.getConnection(url, name, pwd); } catch (Exception e) {
e.printStackTrace();
}
return con; }
}
jdbc:sqlserver://localhost:1433;DatabaseName=JspDb
试一下