繁体   English   中英

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

[英]Getting ClassNotFoundException on code: “Class.forName(”com.microsoft.sqlserver.jdbc.SqlServerDriver“);”

这是我的第一个Java应用程序,我对JavaNetBeans完全没有经验。

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

右键单击项目-> 选择属性-> 在左侧单击库-> 在编译选项卡下 - 单击添加 Jar/文件夹按钮并选择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();
    }
}

根据此页面,该类称为SQLServerDriver而不是SqlServerDriver 案例很重要!

所以,试试:

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

请注意,对于较新版本的 JDBC,没有必要使用Class.forName(...)显式加载驱动程序类。 我链接到的页面明确说明您不必这样做。 因此,您可以删除整行,然后它应该可以工作。

Java:在 NetBeans 中使用 MSSQL 的 JDBC 连接

脚步

  1. 从以下位置下载 JDBC: https : //www.microsoft.com/en-in/download/details.aspx?id=11774
  2. 运行 sqljdbc__enu.exe - 将此 zip 文件解压到 %Program Files (x86)% 中,默认目录为:Microsoft JDBC DRIVER for 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 浏览器
  7. 转到项目并编写用于数据库连接的代码。

本地数据库连接代码:

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");

我有关于这个问题的更新。

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

我希望它也适用于你。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM