最近学习Java,学到了连接数据库,所以就自己动手编写了一个Java程序,但是连不上数据库,请帮我找一下错误的原因,谢谢~~~~
我用的是SQLServer 2000的数据库,而且三个驱动jar包都已经正确导入,可能跟SQLServer 2000的设置有关,请大家指教一下,谢谢!!代码如下:
package com.zjx.javadatabase;import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;public class JavaURL {
public static void main(String args[])
{
Connection conn=null;
Statement stmt=null;
ResultSet rs=null;

String connectStr="com.microsoft.jdbc.sqlserver.SQLServerDriver";
String urlStr="jdbc:microsoft:sqlserver://localhost:1433;DataBaseName=contact";
String sqlStr="select * from contactpeople";
String userName="sa";
String userPass="";

try {
Class.forName(connectStr);
System.out.println("数据库驱动程序注册成功!"); conn=DriverManager.getConnection(urlStr,userName,userPass);
System.out.println("数据库连接成功!"); stmt=conn.createStatement();
rs=stmt.executeQuery(sqlStr);

System.out.println("所有联系人的信息如下所示:");
while(rs.next())
{
System.out.println("姓名:"+rs.getString(1));
System.out.println("联系方式:"+rs.getString(2));
System.out.println("QQ号为:"+rs.getString(3));
System.out.println("联系人分类为:"+rs.getString(4));
System.out.println("生日为:"+rs.getString(5));
System.out.println("性别为:"+rs.getString(6));
System.out.println();
}

rs.close();
stmt.close();
conn.close();

} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}每次运行都报错,错误说明如下:
数据库驱动程序注册成功!
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(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at com.zjx.javadatabase.JavaURL.main(JavaURL.java:26)请各位高手帮我解决一下这个问题~~~

解决方案 »

  1.   

    在 SQL Server 中执行 SELECT @@version 看看出来的版本是多少?如果在 8.00.760 以下,那就需要打上 SP3 或者 SP4 的补丁包。SQL Server 2000 Server Pack 4 补丁包:

    http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=8e2dfc8d-c20e-4446-99a9-b7f0213f8bc5
    安装好这个 SP4 后的版本应该为 8.00.2039,如果是这个的话,再试着用 JDBC 连连看。
      

  2.   

    第一:安装JDBC驱动第二:为SQLserver2000打上补丁,目前最新的是SP4,这个可以在网上找的,大把多,打上补丁之后,1433端口就自动打开了,无须再手动配置。第三:确保你的SQLserver2000的登陆验证方式是混合登陆验证,例如用户名设为sa,密码也是是sa(这点有待考证,朋友们可以试试)
    第四:连接的时候,数据库的服务器必须是开启状态,此时屏幕右下角的通知区域会有一个绿色的小箭头
      

  3.   

    你的JAR驱动包没有找到。把它路径加入path里面就可以了。打开TCP/IP端口就可以了。不行QQ:283569994