浙江龙亿建设有限公司:Java连接SQL SERVER 2000报错,急!

来源:百度文库 编辑:神马品牌网 时间:2024/05/09 12:38:43
错误如下:
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 DbTest.init(DbTest.java:26)
at DbTest.<init>(DbTest.java:18)
at DbTest.main(DbTest.java:44)
源码如下:
import java.sql.*;
public class DbTest
{
Connection con;
Statement sta;
ResultSet rs;

String driver;
String url;
String user;
String pwd;
public DbTest()
{
driver = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=pubs";
user = "sa";
pwd = "qq";
init();
}
public void init()
{
try
{
Class.forName(driver);
System.out.println("driver is ok");
con = DriverManager.getConnection(url,user,pwd);
System.out.println("conection is ok");
sta=con.createStatement();
rs = sta.executeQuery("select * from authors");

while(rs.next())
{
System.out.println(rs.getString("au_lname"));
}
}
catch(Exception e)
{
e.printStackTrace();
}
}

public static void main(String args[])
{
new DbTest();
}
}

根据Exception的类型很容易知道啊
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing socket.
是在建立数据库联接的时候出现了问题,不能建立连接
一般是由网络原因造成的,因为你连接的是本地数据库,所以可以基本排除网络故障,除非你的网卡有问题
不能建立连接的原因可能是你使用windowsxp2或者windows server2003系统,而你的sqlserver没有打sp3,在这种情况下,sqlserver会拒绝jdbc的连接,打上sp3就没事了

关于一楼的描述,首先,搂主使用的是jdbc方式连接sqlserver数据库,所以根本不存在所谓的odbc数据源问题(这个问题只会出现在使用jdbcodbc桥连接的情况下);再一个,关于数据源配置的那个东西叫做dsn(DataSourceName,数据源名称),dns是Domain Name Server-域名服务器,这两个东西一点关系都没有

关于二楼,如果没有找到驱动,应该抛出ClassNotFoundException,而不是SQLException,从错误堆栈里很明显jdbc的驱动已经被加载和调用了

你的数据库没有在ODBC数据源设置吧.看看设置了和java的DNS设置了关联没有.具体设置步骤.请到太平洋论坛里讨论吧.提问的也太小儿科了.我就是数据库研究开发者

有没有SQLSERVER驱动的JDBC啊
应该是没找到驱动,出的错