我的系统是xp sp2,数据库是sql server 2000 sp4,系统的环境变量如下:
CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JDBC_Home%\lib\msbase.jar;%JDBC_Home%\lib\mssqlserver.jar;%JDBC_Home%\lib\msutil.jar;
JAVA_HOME
C:\j2sdk1.4.2_04
JDBC_Home
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC
Path
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;测试程序如下:
import java.sql.*;
public class a {
public static void main(String[] args){
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433; DatabaseName=fsbbs";
String userName = "sa";
String userPwd = "123";
Connection dbConn;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
Statement pStmt=dbConn.createStatement();
String sql = "insert into ta (a,b) values ('aaa','bbb')";
pStmt.executeUpdate(sql);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
错误提示如下:D:\>java a
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing 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 Sou
rce)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at a.main(a.java:11)
D:\>数据库中确有fsbbs数据库,
sa默认的数据库是fsbbs,
fsbbs里确有表ta,
sa的密码也正确,
端口确是1433,
insert into ta (a,b) values ('aaa','bbb')在查询分析器里能正确运行。
谁能帮我看看这是怎么回事??
救救我吧!!!!!!!!!!!!1
CLASSPATH
.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;%JDBC_Home%\lib\msbase.jar;%JDBC_Home%\lib\mssqlserver.jar;%JDBC_Home%\lib\msutil.jar;
JAVA_HOME
C:\j2sdk1.4.2_04
JDBC_Home
C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC
Path
%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\Microsoft SQL Server\80\Tools\BINN;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;测试程序如下:
import java.sql.*;
public class a {
public static void main(String[] args){
String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
String dbURL = "jdbc:microsoft:sqlserver://127.0.0.1:1433; DatabaseName=fsbbs";
String userName = "sa";
String userPwd = "123";
Connection dbConn;
try {
Class.forName(driverName);
dbConn = DriverManager.getConnection(dbURL, userName, userPwd);
System.out.println("Connection Successful!");
Statement pStmt=dbConn.createStatement();
String sql = "insert into ta (a,b) values ('aaa','bbb')";
pStmt.executeUpdate(sql);
}
catch (Exception e) {
e.printStackTrace();
}
}
}
错误提示如下:D:\>java a
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing 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 Sou
rce)
at com.microsoft.jdbc.base.BaseConnection.getNewImplConnection(Unknown S
ource)
at com.microsoft.jdbc.base.BaseConnection.open(Unknown Source)
at com.microsoft.jdbc.base.BaseDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at a.main(a.java:11)
D:\>数据库中确有fsbbs数据库,
sa默认的数据库是fsbbs,
fsbbs里确有表ta,
sa的密码也正确,
端口确是1433,
insert into ta (a,b) values ('aaa','bbb')在查询分析器里能正确运行。
谁能帮我看看这是怎么回事??
救救我吧!!!!!!!!!!!!1
请参考以下两个URL
http://blog.csdn.net/jinzhili/archive/2006/02/15/599217.aspx
http://blog.csdn.net/jinzhili/archive/2006/02/13/597891.aspx
可偏偏问此类问题的都是跟MS SQLSERVER相关的。
搞不懂到底是MS的JDBC问题多,还是用的人实在太多导致问问题的人多~
MSSQL的数据库可以现在系统中建个ODBC用Sun的ODBC-JDBC桥来连接也可以
打补丁去
http://www.microsoft.com/downloads/details.aspx?FamilyId=90DCD52C-0488-4E46-AFBF-ACACE5369FA3&displaylang=zh-cn2、下载SQL Server 2000 Driver for JDBC Service Pack 3
http://www.microsoft.com/downloads/details.aspx?FamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&displaylang=en3、运行时关闭防火墙
你在查询分析器输入select @@version 看一下你的SQL版本号,jdbc需要sp3以上的补丁!
你的dbURL好象有问题1433后面有";"吗