java连接数据库,用的是jdbc与SQL Server2000连接,这种方法我一直没连接成功过,下面是我连接的代码,showinfor是已经建好的数据库名,数据库用户名和密码都是"sa",请看出错误的指教下。    public dbConn() {
        try {
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            Connection conn = DriverManager.getConnection(
                    "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=showinfor",
                    "sa", "sa");
            PreparedStatement pstmt = conn.prepareStatement(
                    "select * from student");
            ResultSet rs = pstmt.executeQuery();
            while (rs.next()) {
                System.out.println(rs.getInt(1));
            }
        } catch (ClassNotFoundException ex) {
            System.out.println("Can't find the class!");
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
    }但是我用这种方法却可以连接:  public dbConn() {
        try {
            Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
        } catch (ClassNotFoundException ex) {
            System.out.println("Can't find the class!");
        }
        String str="jdbc:odbc:show";
        try {
            Connection conn = DriverManager.getConnection(str);
            Statement st=conn.createStatement();
            ResultSet rs=st.executeQuery("select * from student");
            while(rs.next()){
                System.out.println(rs.getInt("Id"));
            }
        } catch (SQLException ex1) {
            ex1.printStackTrace();
        }
    }

解决方案 »

  1.   

    运行的时候要把sqlserver的jdbc包放在classpath里面才行。
      

  2.   

    msbase.jar
    mssqlserver.jar
    msutil.jar
    将上面三个类放在工程下,或classpath里面。
      

  3.   

    我在导包的时候已经导进了啊,难道非要放在classpath里才可以吗?
      

  4.   

    有两种可能。第1你没有加载SQL的驱动.如果加载了不行的话你把语句改一下看看
    Connection conn = DriverManager.getConnection(
                        "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=showinfor",
                        "sa", "sa");
      

  5.   

    那你确认一下看看SQL的服务是否打开了?
      

  6.   

    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:525)
    at java.sql.DriverManager.getConnection(DriverManager.java:171)
    at com.gayly.dbConn.<init>(dbConn.java:47)
    at com.gayly.dbConn.main(dbConn.java:64)
      

  7.   

    msbase.jar
    mssqlserver.jar
    msutil.jar
    这三个类包全吗?只有mssqlserver.jar类包不好用。
      

  8.   

    Connection conn = DriverManager.getConnection(  这一行有错误
    再就是main方法
    public static void main(String[] args) {
            dbConn c = new dbConn();   这一行有错
        }
      

  9.   

    可能是驱动的版本不对....
    查查
    msbase.jar
    mssqlserver.jar
    msutil.jar
    的版本是否和SQL SERVER一致
      

  10.   

    如果你的系统平台是win xp sp2的话,你连接mssql server 2000需要打上sql server 2000 sp3的补丁,这样才好使。切记,双击sql server 2000 sp3.exe运行后并不代表就打上补丁了,你需要找到解压的目录后执行setup才是真正的打补丁。
        如果你的系统平台是win xp sp2的话
    你还需要打开Tcp 1433 和 UDP1433 端口  
     
      

  11.   

    哭死  昨天刚遇到这个问题  搞了一天 都郁闷 坏了 唉今天就看到答案  郁闷 就是 SP3包的问题,我安装的是SP4  怒了  那个安装真TMD  讨厌 安装一下还以为是安装完毕了呢  谁知道....是解压  疯了~~~