操作系统:WinXP+SP2
数据库:SQL Server 2000+SP3
JDBC驱动:从http://www.microsoft.com/downloads/info.aspx?na=46&p=5&SrcDisplayLang=en&SrcCategoryId=&SrcFamilyId=07287B11-0502-461A-B138-2AA54BFDC03A&u=http%3a%2f%2fdownload.microsoft.com%2fdownload%2f4%2f1%2fd%2f41d3e9c0-64d1-451e-947b-7a4cba273b2d%2fsetup.exe下载的。
安装后,将三个文件拷到%JAVA_HOME%\lib中,然后在%CLASS_PATH%中加入%JAVA_HOME%\lib\msbase.jar;%JAVA_HOME%\lib\mssqlserver.jar;%JAVA_HOME%\msutil.jar
JAVA程序如下:
import java.sql.*;
public class ConSqlserver{ 
    Connection con;
    Statement st;
    ResultSet rs;  
    public ConSqlserver(){  
        try{ 
               String Drivers="com.microsoft.jdbc.sqlserver.SQLServerDriver";
               String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydatabase"; 
 String user="sa";
 String password="";
               Class.forName(Drivers);
               con=DriverManager.getConnection(url,user,password);
               System.out.println("连接成功!");
               con.close();           
         }catch(Exception e){
               e.printStackTrace();
         }
    }
 
    public static void main(String args[]){    
        ConSqlserver cs=new ConSqlserver();  
    }
 
}
用javac ConSqlserver.java编译一切正常,已经编译成.class文件,
然后再java ConSqlserver,却报告:
java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
在坛内查找解决方案,看到坛内说的方法与我的方法相符,无奈,将三个文件解压到class所在的目录中,再运行java ConSqlserver,运行通过。
现在偶想问一下,如果不解压,那三个文件应该放到什么地方呢?%CLASS_PATH%应该怎样设置呢?
偶用的是jdk1.5,用的是记事本写的代码。

解决方案 »

  1.   

    -------------JDBC连接SQL Server总是搞不定,真受打击! ---------兄弟,搞定了没有 ,快告诉我是怎么回事吧,我快受不了了
      

  2.   

    com.microsoft.jdbc.sqlserver.SQLServerDriver jdbc的驱动没有找到,就是classpath 没配好
      

  3.   

    我想应该也是classpath的问题,可就是不知道该怎样做。我的classpath是这样的
    JAVA_HOME=c:\C:\Program Files\Java\jdk1.5.0_04
    CLASS_PATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\mssqlserver.jar;%JAVA_HOME%\lib\msbase.jar;%JAVA_HOME%\lib\msutil.jar
    有什么不对的地方吗?
      

  4.   

    偶是初学者!看不懂楼主是怎么连的!不过我是用jdbc和odbc桥连的!成功了!楼主不妨试试!
    这是别人写的例子!希望对楼主有帮助!import java.sql.*; 
    //加载java数据连接包,java基本所有的数据库的调用的都在这个东西里面 public class InsertCoffees { public static void main(String args[]) { String url = "jdbc:odbc:sqlserver"; 
    //取得连接的url名,注意sqlserver是dsn名 
    Connection con; 
    //实例化一个Connection对象 
    Statement stmt; 
    String query = "select * from col_link"; 
    //选择所有的Col_link表中的数据输出 try { 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    //加载jdbc-odbc桥驱动 } catch(java.lang.ClassNotFoundException e) { 
    System.err.print("ClassNotFoundException: "); 
    //加载jdbc-odbc桥错误 
    System.err.println(e.getMessage()); 
    //其他错误 
    } try { con = DriverManager.getConnection(url, "sa", ""); 
    //数据库连接 
    stmt = con.createStatement(); 
    //Create 一个声明 
    stmt.executeUpdate("CREATE TABLE col_link (sitename varchar (20) NULL ,siteurl varchar (50) NULL) "); 
    //执行了一个sql语句生成了一个表col_link的表 
    stmt.executeUpdate("insert into col_link values('ASP中华网','http://www.aspcn.com')"); 
    stmt.executeUpdate("insert into col_link values('永远到底有多远','http://xuankong.com')"); 
    //执行一个insert into语句 
    stmt.executeUpdate("update col_link set siteurl='http://www.aspcn.com/xuankong/xuankongt.jpg' where siteurl='http://xuankong.com'"); 
    //执行一个update语句,更新数据库 
    ResultSet rs = stmt.executeQuery(query); 
    //返回一个结果集 
    System.out.println("Col_link表中的数据如下(原始数据)"); 
    //下面的语句使用了一个while循环打印出了col_link表中的所有的数据 
    System.out.println("站点名 "+" "+"站点地址"); 
    System.out.println("---------------"+" "+"----------------"); 
    while (rs.next()) { 
    String s = rs.getString("sitename"); 
    String f = rs.getString("siteurl"); 
    //取得数据库中的数据 
    System.out.println(s + " " + f); 
    /*String t = rs.getString(1); 
    String l = rs.getString(2); 
    System.out.println(t + " " + l);*/ 
    /*jdbc提供了两种方法识别字段,一种是使用getXXX(注意这里的getXXX表示取不同类型字段的不同的方法)获得字段名, 
    第二种*是通过字段索引,在这里我把第二种方法注释了*/ 
    /*你可以访问这个连接获得getxxx的用法:http://java.sun.com/docs/books/tutorial/jdbc/basics/_retrievingTable.html*/ 

    stmt.close(); 
    con.close(); 
    //上面的语句关闭声明和连接 
    } catch(SQLException ex) { 
    System.err.println("SQLException: " + ex.getMessage()); 
    //显示数据库连接错误或者查询错误 


    }
      

  5.   

    我的桌面调用是好的,一切正常,可连接DB并查询出数据;
     但是 用IE请求一个servlet的话,servlet会有问题用 e.printStackTrace(out) 返回如下:java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1366) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1213) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:141) at GetMsgInfo.doGet(GetMsgInfo.java:28) at javax.servlet.http.HttpServlet.service(HttpServlet.java:743) at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) at...............
    --------------------------
    服务器用是 tomcat5.0 ...哪个 com.microsoft.jdbc.sqlserver.SQLServerDriver 怎么配置啊??????????????????????
    --------------------------
      

  6.   

    楼主是CLASSPATH而不是CLASS_PATH。
      

  7.   

    你试试java -classpath 第1个jar;第2个jar;第3个jar ConSqlserver
    eg:
    java -classpath c:\jdk\mssqlserver.jar......  ConSqlserver
      

  8.   

    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); 
    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb"; 
    //mydb为数据库 
    String user="sa"; 
    String password=""; 
    Connection conn= DriverManager.getConnection(url,user,password);
      

  9.   

    把JDBC安装目录下的BIN下的三个JAR文件拷到你应用程序WEB-INF下面的classes目录下
      

  10.   

    假设你的jdbc驱动安装在C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC则ClassPath应如下设置
    C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msbase.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\mssqlserver.jar;C:\Program Files\Microsoft SQL Server 2000 Driver for JDBC\lib\msutil.jar