3个驱动包放在
%JAVA_HOME%/ext/lib目录里面

解决方案 »

  1.   

    sqlserver的驱动是3个包,放在lib里面应该是没问题的
      

  2.   

    import java.sql.*; 
    public class testjdbc {
         public static void main(String[] args){ 
            String driverClassName = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
            String url = "jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=NorthWind"; 
            String uid = "sa";
             String pwd = "aaa";
             try{ 
                Class.forName(driverClassName); 
             }catch(Exception e){ 
                e.printStackTrace(); 
                System.err.println("找不到驱动程序路径。"); 
                System.exit(0); 
            } 
            Connection conn = null; 
            PreparedStatement ps = null;
            ResultSet rs = null; 
            String sql = "select * from categories"; 
            try{ 
                conn = DriverManager.getConnection(url,uid,pwd); 
                ps = conn.prepareStatement(sql); 
                rs = ps.executeQuery(); 
                System.out.println("table categories:"); 
                System.out.println("id\t\tname"); 
                while(rs.next()){ 
                    String id = rs.getString("CategoryID"); 
                    String name = rs.getString("CategoryName"); 
                    System.out.println(id + "\t\t" + name); 
                } 
            }catch(SQLException e){ 
                e.printStackTrace(); 
                System.err.println("连接数据库失败."); 
                System.exit(0); 
            }finally{ 
                if(rs != null){ 
                    try{ 
                        rs.close(); 
                    }catch(SQLException e){ 
                        e.printStackTrace(); 
                        System.err.println("不能关闭数据库连接"); 
                        System.exit(0); 
                    } 
                } 
                if(ps != null){ 
                    try{ 
                        ps.close(); 
                    }catch(SQLException e){ 
                        e.printStackTrace(); 
                        System.err.println("不能关闭数据库连接"); 
                        System.exit(0); 
                    } 
                } 
                if(conn != null){ 
                    try{ 
                        conn.close(); 
                    }catch(SQLException e){ 
                        e.printStackTrace(); 
                        System.err.println("不能关闭数据库连接"); 
                        System.exit(0); 
                    } 
                } 
            } 
            System.out.println("数据库连接测试成功."); 
        } 
    } 这是我的测试脚本;F:\java\jdbctest>javac  testjdbc.javaF:\java\jdbctest>java   testjdbc
    Exception in thread "main" java.lang.NoClassDefFoundError: com/microsoft/jdbc/ba
    se/BaseDriver
            at java.lang.ClassLoader.defineClass0(Native Method)
            at java.lang.ClassLoader.defineClass(ClassLoader.java:537)
            at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
    3)
            at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
            at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:141)
            at testjdbc.main(testjdbc.java:10)
    我把path,classpath.java_home都设置成C:\javasdk1.4;C:\javasdk1.4\bin;C:\javasdk1.4\lib;
    如果把中间的那段减掉只留System.out.println("数据库连接测试成功."); 程序能正常显示
      

  3.   

    你的环境变量设置有严重的问题现在你要做的是google一下,找到jdk的环境变量设置
    然后什么也别改了
    把驱动3个包放在jdk/lib目录里面!
      

  4.   

    现在我只设置了path=C:\j2sdk1.4.2\bin;C:\j2sdk1.4.2\lib
    并且jdbc复制到了C:\j2sdk1.4.2\lib下面
    程序提示
    F:\java\jdbctest>java  testjdbc
    java.lang.ClassNotFoundException: com.microsoft.jdbc.sqlserver.SQLServerDriver
            at java.net.URLClassLoader$1.run(URLClassLoader.java:199)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
            at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
            at java.lang.Class.forName0(Native Method)
            at java.lang.Class.forName(Class.java:141)
            at testjdbc.main(testjdbc.java:9)
    找不到驱动程序路径。
      

  5.   

    给您贴个连接sql的方法:
    一、下载SQLSERVER2000的jdbc驱动程序。在微软站点就有这个驱动程序:Window操作系统http://www.uncj.com/upload/files/ms_jdbc_setup.exe http://download.microsoft.com/download/3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/setup.exe Unix操作系统 Mssqlserver.tar http://download.microsoft.com/download/3/0/f/30ff65d3-a84b-4b8a-a570-27366b2271d8/mssqlserver.tar 二、安装JDBC     执行ms_jdbc_setup.exe可执行文件,一切只需要点击下一步,至到出现finish按钮,完成安装。注:(1) ms_JDBC_setup默认安装路径为:c:\Program Files\Microsoft SQL Server 2000 Driver for JDBC(2)此版(Version 2.2.0022)本仅支持Microsoft SQL Server 2000 Driver for JDBC (3)安装目录\lib\下的三个jar文件即是我们要的JDBC驱动核心     msbase.jar     mssqlserver.jar     msutil.jar 三、将以上(3)中指的三个jar文件加入到环境变量中去classpath:     d:\webserver\lib\msbase.jar;d:\webserver\lib\mssqlserver.jar;d:\webserver\lib\msutil.jar注:也可以省事的将以上三个文件拷贝至你的jvm机所在的JAVA_HOME\jre\lib\ext目录下,不过不建议这么做。 四、测试jsp文件:<%@ page contentType="text/html;charset=gb2312"%> <%@ page import="java.sql.*"%> <html> <body> <%   Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();    String url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=haiguan";    String user="sa";    String password="";    Connection conn= DriverManager.getConnection(url,user,password);    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);    String sql="select * from xt_user";    ResultSet rs=stmt.executeQuery(sql);    while(rs.next())    {%>        您的第一个字段内容为:<%=rs.getString(1)%>        您的第二个字段内容为:<%=rs.getString(2)%> <%   }%> <%out.print("数据库操作成功,恭喜你");%> <%   rs.close();    stmt.close();    conn.close(); %> </body> </html> 五、注意事项1. 要保证你的Sql服务是启动状态2. 在Sql 的管理器中能够使用sa或其它用户正常登录;(有些人在安装sql时用了nt用户管理模式,这里可能会有一定问题)3. 第一次配置好环境变量最好能重启一下电脑4. 注意JVM和DataBase的启动顺序:先启动DataBase,再启动JVM机。注:在停止Web服务器后,再重启动,中间最好能有10秒以上的间隔。5. 注意操作系统的网络连通性     A.启动了Tcp/IP服务     B.配置了相关IP地址,有些人机器可能用的是自动分配IP或有配置IP时,但网络不通可能也找不到IP6. 有些机器在调试明最好能将(四)中的连接地址localhost改成数据库服务器的IP,这也是要注意5的原因。 
    (以上资料来自internet,只为交流,希望对楼主有帮助)
      

  6.   

    楼上的总是到处乱copy,又不针对具体实例!
      

  7.   

    将你的classpath改成classpath=.;E:\mssqldriver;C:\javasdk1.4\lib;C:\javasdk1.4\lib\mssqlserver.jar
    即在最前面加上.;
    同时设置classpath后重启系统,如果还是不行的话,将你的三个jar文件移到java_home\jre\lib\ext中
      

  8.   

    to 007remember(绿原)
    对不起哦,我刚才说话太过分了!
    你写的例子也挺好的,实在抱歉!
      

  9.   

    特别声明:
        例子来自internet
        不是我写的