我从MS网站上下了一个JDBC的驱动。安装后,按照MS的要求也进行了CLASSPATH的配置,把三个.jar文件都加入了CLASSPATH。但是下面的程序还是无法运行。提示出错信息为:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver但是如果用代码中注释掉的JDBC:ODBC连接则程序可以正常运行的。
哪位能告诉我这到底是怎么回事?
import java.sql.*;public class Test{
    private String URL;
    private Connection con;
    public Statement stat;
    public ResultSet rs;
    
    public Connection getConnection(){
        try{
            //Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
            Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            con = DriverManager.getConnection("jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs", "sa", "");
            //con = DriverManager.getConnection("jdbc:odbc:Pubs", "sa", "");
            if(con!=null)
                System.out.println("Connection has been Created!");
        }catch(SQLException e){
            e.getStackTrace();
            System.out.println(e);
        }catch(Exception e){
            e.getStackTrace();
            System.out.println(e);
        }
        return con;
    }
    
    public ResultSet getResult(){
        try{
            stat = con.createStatement();
            rs=stat.executeQuery("select * from authors");
        }catch(SQLException e){
            e.getStackTrace();
            System.out.println(e);
        }
        return rs;
    }
    public void Close(){
        try{
            rs.close();
            stat.close();
            con.close();
            System.out.println("Connection has been closed!");
        }catch(SQLException e){
            e.getStackTrace();
            System.out.println(e);
        }
    }
    public static void main(String []args){
         Test obj=new Test();
         obj.getConnection();
         obj.getResult();
         try{
             while (obj.rs.next()) {
                 System.out.println(obj.rs.getString("au_fname"));
             }
         }catch(SQLException e){
             e.getStackTrace();
            System.out.println(e);
         }
         obj.Close();
    }
}

解决方案 »

  1.   

    不知道楼主是不是用eclipse、jb之类的ide,这些的话直接把包加 在classpath中没用的,要在ide中把包加进去,eclipse有个user libraries,jb也有个包管理的
      

  2.   

    哦,这样啊?我用的是JB。不过我在DOS下用java命令也会报错的。
      

  3.   

    ECLIPSE中,选中包,右击选择SOURCE,ADD TO BUILD PATH就可以了。
      

  4.   

    我在JB的Tools->Configure->libraries中JBuilder New,然后加了一个SQLServerDriver,好像没有用啊。
      

  5.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    改成Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();试试
      

  6.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    改成Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();试试========================================
    还是报错java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
      

  7.   

    那再检查一下你的JDBC的驱动配置是否正确,应该是你的配置的问题。
      

  8.   

    经过我的测试,MSSQL 的标准版不支持jdbc驱动程序,用企业版就行了。给分吧。
      

  9.   

    标准版不支持jdbc驱动?不会吧?
      

  10.   

    强烈建议使用
    jtds比jdbc好用多了,功能上面强些。