我在自己本机上搭建一个网站环境, 服务器Tomcat和java环境变量都已经设好了, 我把网站的源码放到tomcat的webapps目录下, 在SQL 2000中把数据库加了进去,并配置了ODBC数据源,可是我运行的时候, 输入http://10.131.9.4:8090/web_ldj/main/index.jsp出现了如下问题, 我的数据库SQL 2000在安装过程中没有设置密码, 服务器提示数据库连接失败.错误如下:
创建数据库连接失败,请确认连接方式、用户名、密码是否正确:
[Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
sDBDriver is : com.microsoft.jdbc.sqlserver.SQLServerDriver
sDBUrl is : jdbc:microsoft:sql://127.0.0.1:1433;DatebaseName=web_ldj
sDBPassword is: keyang_ldj请问我该怎么解决?

解决方案 »

  1.   

    这是 使用 odbc 桥(oracle)的连接代码:String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
      String ConnStr="jdbc:odbc:Employee";
      String sql="select * from person";
      Connection conn=null;
      ResultSet rs=null;  public ToAccessDB(){
              try {
                      Class.forName(DBDriver);
                      conn= DriverManager.getConnection(ConnStr);
                      Statement stmt=conn.createStatement();
                      rs=stmt.executeQuery(sql);
                      while(rs.next()){
                              System.out.println("  " + rs.getString("id"));
                      }
                      rs.close();
                      stmt.close();
                      conn.close();
                      }
              catch (Exception e) {
                      System.out.println("class toAccess : " + e.getMessage()+ " Err!");
              }
      }
      

  2.   

    1)在控制面板里,创建 odbc 数据源。一定要测试连接,以保证正确。
    2)
      // odbc 驱动名称
      String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";  // Employee 是在odbc 中创建的数据源名称。
      String ConnStr="jdbc:odbc:Employee";  // 要执行的 sql 文 
      String sql="select * from person";  Connection conn=null;
      ResultSet rs=null;  public ToAccessDB(){
              try {
                      // 加在驱动
                      Class.forName(DBDriver);                  // 创建连接
                      conn= DriverManager.getConnection(ConnStr);
                      
                      // 创建查询     
                      Statement stmt=conn.createStatement();
                      rs=stmt.executeQuery(sql);
                      while(rs.next()){
                              System.out.println("  " + rs.getString("id"));
                      }
                      rs.close();
                      stmt.close();
                      conn.close();
                      }
              catch (Exception e) {
                      System.out.println("class toAccess : " + e.getMessage()+ " Err!");
              }
      }
      

  3.   

    确认你的 MS SQL SERVER 2000 是混合模式登陆
    并确认 MS SQL SERVER 2000 已经打上SP3以上的补丁!
      

  4.   

    // Employee 是在odbc 中创建的数据源名称。
      String ConnStr="jdbc:odbc:Employee";-- 数据源中配置数据库的ip , 名, 端口等
      

  5.   

    确认你的 MS SQL SERVER 2000 是混合模式登陆
    并确认 MS SQL SERVER 2000 已经打上SP3以上的补丁!照着你上面的做了,问题还没有解决!不知怎么回事
      

  6.   

    没看到你的用户名
    设置的过程中没有密码,但sDBPassword is: keyang_ldj是什么呢建议换用JDBC连接,你用JSP写页面为什么用ODBC连数据库呢!
      

  7.   

    没看到你的用户名
    设置的过程中没有密码,但sDBPassword is: keyang_ldj是什么呢建议换用JDBC连接,你用JSP写页面为什么用ODBC连数据库呢!
    -----------------------------------------------------------
    不好意思
    我少写了一个,用户名是:sDBUser is :user_ldj
    完整的错误下下:
    创建数据库连接失败,请确认连接方式、用户名、密码是否正确:
    [Microsoft][SQLServer 2000 Driver for JDBC]Error establishing socket.
    sDBDriver is : com.microsoft.jdbc.sqlserver.SQLServerDriver
    sDBUrl is : jdbc:microsoft:sql://127.0.0.1:1433;DatebaseName=web_ldj
    sDBUser is : user_ldj
    sDBPassword is: keyang_ldj
      

  8.   

    请大家帮忙,该怎么改正?
    还有用JDBC连接数据库,具体操作步骤和方法该怎么做?只贴代码,小弟不大明白,望名位大哥帮忙!
      

  9.   

    Connection con=null;
    String CLASSFORNAME="net.sourceforge.jtds.jdbc.Driver";
    String SERVANDDB="jdbc:jtds:sqlserver://127.0.0.1:1433/test";
    String USER="sa";
    String PWD="123456";
    //上面的信息改成你自己的      try
          {
                 Class.forName(CLASSFORNAME);
        Connection mycon = con=DriverManager.getConnection(SERVANDDB,USER,PWD);
        Statement stmt = mycon.createStatement();
        ResultSet rst = stmt.executeQuery("select * from teacher");
        rst.next();
        out.write(rst.getString(1));
      }catch(Exception e){
        out.write(e.getMessage());
        e.printStackTrace();
      }
      

  10.   

    Connection con=null;
    String CLASSFORNAME="net.sourceforge.jtds.jdbc.Driver";
    String SERVANDDB="jdbc:jtds:sqlserver://127.0.0.1:1433/test";
    String USER="sa";
    String PWD="123456";
    //上面的信息改成你自己的      try
          {
                 Class.forName(CLASSFORNAME);
        Connection mycon = con=DriverManager.getConnection(SERVANDDB,USER,PWD);
        Statement stmt = mycon.createStatement();
        ResultSet rst = stmt.executeQuery("select * from teacher");
        rst.next();
        out.write(rst.getString(1));
      }catch(Exception e){
        out.write(e.getMessage());
        e.printStackTrace();
      }
    ---------------------------------------------------------------------------------
    请问大哥,我查看了一下,数据库文件DataConn.java的连接代码中,里面找不到用户名和密码
    sDBUser is : user_ldj
    sDBPassword is: keyang_ldj
    这样的代码,如果改的话,该到哪里去改,是在安装SQL 2000的过程中,改用混合模式,把安装的用户名和密码改成user_ldj和keyang_ldj吗?
      

  11.   

    数据源的驱动没有加载的原因造成的。。
    你首先要保证数据库至少打了sp3补丁,,
    加载数据源连接驱动。。
    ------------------------------------------------------------------------------
    按你的提供的方法,已打上SP3补丁
    还是没有连接成功
    加载数据源连接驱动的方法该怎么操作?麻烦大哥说详细一点
      

  12.   

    我在数据库连接文件DataConn.java里面,只有如下的代码,
        protected static String sDBDriver = "";
        protected static String sDBUrl = "";
        protected static String sDBUser = "";
        protected static String sDBPassword = "";
        private static boolean SysUser = false;------------------------------------------------------------------------------------补丁SP3已打上,JDBC驱动也装上了
    可还是连不上,但是错误变了,变成如下:
    [Microsoft][SQLServer 2000 Driver for JDBC]end of stream was detected on a read
    sDBDriver is : com.microsoft.jdbc.sqlserver.SQLServerDriver
    sDBUrl is : jdbc:microsoft:sql://127.0.0.1:1433;DatebaseName=web_ldj
    sDBUser is : user_ldj
    sDBPassword is: keyang_ldj