在代码上获取ClassNotFoundException:“Class.forName(”com.microsoft.sqlserver.jdbc.SqlServerDriver“);”

时间:2013-08-24 16:30:05

标签: java classpath classnotfoundexception sqljdbc

这是我的第一个 Java 应用程序,我对 Java NetBeans 完全缺乏经验。

我一直在尝试连接到sql并获取一些记录2天。问题是关于 jdbc 驱动程序,让我解释一下。我已经下载了 sqljdbc 驱动程序,然后按照以下步骤操作:

右键单击Project->选择Properties->在左侧单击Libraries->在Compile选项卡下 - 单击Add Jar / Folder按钮并选择 sqljdbc4.jar 文件。那应该没问题吧?

然后我编写了这段代码但是我无法摆脱这个异常:

  Exception in thread "main" java.lang.ClassNotFoundException: 
  com.microsoft.sqlserver.jdbc.SqlServerDriver
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at javaapplication1.JavaApplication1.main(JavaApplication1.java:30)

这是代码

public static void main(String[] args) throws ClassNotFoundException, SQLException {
    String url = "jdbc:sqlserver://.\\SQLEXPRESS;databaseName=Northwind; Integrated Security = SSPI ";

    Connection con = null;
    Statement stmt = null;

    ResultSet rs = null;
    try {
        Class.forName("com.microsoft.sqlserver.jdbc.SqlServerDriver");

        con = DriverManager.getConnection(url);
        String sql = "Select Top 3 from * person.Contact";
        stmt = con.createStatement();
        rs = stmt.executeQuery(sql);
        while (rs.next()) {
            System.out.println(rs.getString(1));
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

3 个答案:

答案 0 :(得分:10)

根据this page,该课程称为SQLServerDriver,而不是SqlServerDriver。案例很重要!

所以,试试:

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");

请注意,对于较新版本的JDBC,不必使用Class.forName(...)显式加载驱动程序类。我链接的页面明确说明您不必这样做。所以,你可以删除整行,然后就可以了。

答案 1 :(得分:1)

Java:NetBeans中与MSSQL的JDBC连接

步骤

  1. 从以下位置下载JDBC: https://www.microsoft.com/en-in/download/details.aspx?id=11774
  2. 运行sqljdbc__enu.exe - 在%Program中解压缩此zip文件 带有默认目录的文件(x86)%:Microsoft JDBC DRIVER  对于SQL Server
  3. 在NetBeans中创建新项目
  4. 右键单击项目 - 选择“属性” - 选择“库” 从左侧面板 - 单击添加JAR /文件夹按钮 - 选择您的JAR文件 并打开 - 确定
  5. 打开Sql Server配置管理器 - 选择协议 Sql Server网络配置下的SQLEXPRESS - 右键单击 TCP / IP - 选择属性 - 将启用更改为是 - 单击IP 地址 - 转到IPAll - 将TCP动态端口更改为49169和TCP 端口到1433 - 应用 - 确定 - 重新启动计算机
  6. 打开“运行”并键入Services.msc - 启动SQL Server Browser
  7. 转到项目并编写数据库连接代码。
  8. 本地数据库连接代码:

    String url = "jdbc:sqlserver://YOUR PC NAME;instanceName=SQLEXPRESS;DatabaseName=dbname;integratedSecurity=true";
    
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection myCon = DriverManager.getConnection(url);
    
    Statement myStmt = myCon.createStatement();
    ResultSet myRs = myStmt.executeQuery("select * from table name");
    

答案 2 :(得分:0)

我有关于此问题的更新。

  1. 转到this链接,找到兼容的JDBC驱动程序(我下载了6.0版)。
  2. 在下载的文件中找到适当的jar(我使用了jre7 \ sqljdbc41.jar)。
  3. 对于Intellij Idea,请按Ctrl+Shift+Alt+S并打开“项目结构”,然后在“依赖关系”部分中添加您的jar文件。

我希望它也对您有用。