我已经把msbase.jar那3个JAR拷贝到C:\Java\jdk1.6.0\lib了
并且也在CLASSPATH里加了C:\Java\jdk1.6.0\lib,可是还是找不到驱动
import java.sql.*;
//import com.microsoft.jdbc.sqlserver.SQLServerDriver;
import java.io.*;public class JDBCDemo {

public static void main(String args[]) {

//Connection conn = null;
//Statement stmt = null;

try{
//加载驱动
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException e){
System.out.println ("驱动类找不到");
}

}

解决方案 »

  1.   

    import java.sql.*; public class TestDB { 
    public static void main(String[] args){
    String userName = "sa"; 
    String userPwd = "xiaosan"; 
    Connection dbConn;
    try{
    String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; 
    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs"; 
    Class.forName(driverName); 
    dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 
    System.out.println("success!");
    Statement stmt=dbConn.createStatement();
    String sql="select * from pub_info";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next())
    {
    System.out.println(rs.getString(1));
    System.out.println(rs.getString(2));
    System.out.println(rs.getString(3));
    }
    rs.close();
            stmt.close();
    dbConn.close();
    }catch(SQLException sqle){
         System.out.println("can't connection db:"+sqle);
         //return null;
        } catch (Exception e) {
            System.out.println("Failed to load JDBC/ODBC driver.");
            //return null;
         }
         
    }}
    //帮楼主贴个例子
      

  2.   

    1、一共有3个jar文件,msbase.jar,mssqlserver.jar和msutil.jar,须同时使用。
    2、“CLASSPATH里加了C:\Java\jdk1.6.0\lib”是不行的,应该像这样加入:
      C:\Java\jdk1.6.0\lib\msbase.jar;C:\Java\jdk1.6.0\lib\mssqlserver.jar;C:\Java\jdk1.6.0\lib\msutil.jar;
      

  3.   

    3、这3个jar文件不建议放在C:\Java\jdk1.6.0\lib里面。建议与你的应用放在一起。
      

  4.   

    CLASSPATH  .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%CATALINA_HOME%\common\lib;C:\Java\jdk1.6.0\lib\msbase.jar;C:\Java\jdk1.6.0\lib\mssqlserver.jar;C:\Java\jdk1.6.0\lib\msutil.jar
    -----------------------
    import java.sql.*; public class TestDB { 
    public static void main(String[] args){
    String userName = "sa"; 
    String userPwd = ""; 
    Connection dbConn;
    try{
    String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; 
    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=pubs"; 
    Class.forName(driverName); 
    dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 
    System.out.println("success!");
    Statement stmt=dbConn.createStatement();
    String sql="select * from pub_info";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next())
    {
    System.out.println(rs.getString(1));
    System.out.println(rs.getString(2));
    System.out.println(rs.getString(3));
    }
    rs.close();
            stmt.close();
            dbConn.close();
    }catch(SQLException sqle){
         System.out.println("can't connection db:"+sqle);
         //return null;
        } catch (Exception e) {
            System.out.println("Failed to load JDBC/ODBC driver.");
            //return null;
        }
    }
    }
    ------------------------------
    提示:Failed to load JDBC/ODBC driver.
    还是不行 :(
      

  5.   

    把catch里面的代码改一下,再分析,上面的代码不能说明“Failed to load JDBC/ODBC driver”。
    改成这样:
    } catch (Exception e) {
            e.printStackTrace();
            //return null;
    }
      

  6.   

    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:169)
    at TestDB.main(TestDB.java:11)
      

  7.   

    而且我import com.microsoft.jdbc.sqlserver.SQLServerDriver;   根本就没有com.microsoft
      

  8.   

    都重启了3遍了  还是米有效果  这个环境变量咋这么难配呢 到底哪里有问题啊
    jdk 1.6.0   ec 3.2     myec 5.1GA
      

  9.   

    你是用javac编译吗?用Dos窗口?如果是,把Dos窗口关掉,重新开一个,这样才能保证新设置在系统中的环境变量在dos窗口中生效。
      

  10.   

    JDK是SKYCN载的  EC3.2是newhua载的  myec是www.myeclipseide.com载的   
    那3个jar是我同学的机子上拷来的 他的可以  SQL是SP4的(SQL SP4是金碟的安装目录里的)
      

  11.   

    也不用把3个jar文件拷到C:\Java\jdk1.6.0\lib里面。
    project>properties>Java Build Path>Libraries>Add External JARs:
    把三个jar文件加到里面就行了。
      

  12.   

    上面的办法在ec3.2和myec里面都适用。
      

  13.   

    也不用把3个jar文件拷到C:\Java\jdk1.6.0\lib里面。
    project>properties>Java Build Path>Libraries>Add External JARs:
    把三个jar文件加到里面就行了。================
    OK了, 可是不能每次都这样ADD近来吧  也太累了点   还有没别的什么法子?
      

  14.   

    暂时先这样吧,谢谢所有楼上的兄弟  特别是  
    给后面来的兄弟留个例子:
    -----------------------------------------
    //SQL要SP3以上的,project>properties>Java Build Path>Libraries>Add External JARs:
    //把三个jar文件加到里面就行了。import java.sql.*; 
    public class TestDB { 
    public static void main(String[] args){
    String userName = "sa"; 
    String userPwd = "";  //这里密码根据你的SQL  
    Connection dbConn;
    try{
    String driverName = "com.microsoft.jdbc.sqlserver.SQLServerDriver"; 
    String dbURL = "jdbc:microsoft:sqlserver://localhost:1433; DatabaseName=Northwind"; 
    Class.forName(driverName); 
    dbConn = DriverManager.getConnection(dbURL, userName, userPwd); 
    System.out.println("success!");
    Statement stmt=dbConn.createStatement();
    String sql="select * from sysobjects";
    ResultSet rs=stmt.executeQuery(sql);
    while(rs.next())
    {
    System.out.println(rs.getString(1));
    System.out.println(rs.getString(2));
    System.out.println(rs.getString(3));
    }
    rs.close();
            stmt.close();
            dbConn.close();
    }catch(SQLException sqle){
         System.out.println("can't connection db:"+sqle);
         //return null;
        } catch (Exception e) {
         e.printStackTrace();
            //return null;
        }
    }
    }
      

  15.   

    Add External JARs后,发布工程时不会带上这个jar包的。
    你一定要加在服务启动里面