gpt4 book ai didi

java - JDBC 驱动程序 - ClassNotFoundException、NetBeans

转载 作者:行者123 更新时间:2023-12-02 05:34:41 26 4
gpt4 key购买 nike

我进行了很多搜索并花了很多时间尝试注册 JDBC 驱动程序。

首先,我将 ojdbc7.jar 文件(从 Oracle 下载)复制到如下所示的目录中:

Driver File(s): /Users/Kamil/glassfish4/jdk7/jre/lib/ext/ojdbc7.jar
Driver Class: oracle.jdbc.OracleDriver
// this is copied from Services/Databases/Drivers/ojdbc

然后,我尝试了以下代码:

try {
Driver myDriver = new oracle.jdbc.driver.OracleDriver();
DriverManager.registerDriver(myDriver);
} catch (ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}

...还有这个:

try {
Class.forName("oracle.jdbc.OracleDriver");
} catch (ClassNotFoundException ex) {
System.out.println("Error: unable to load driver class!");
System.exit(1);
}

...并用这一行代替:

Class.forName("oracle.jdbc.driver.OracleDriver");

我总是得到 ClassNotFoundException :(

这是我尝试运行的代码:

Connection DBconn;
String USER = "root";
String PASS = "root";
System.out.println("Connecting to database...");

DBconn = DriverManager.getConnection("mysql://localhost:3306/RestToolDatabase", USER, PASS);

System.out.println("Creating statement...");
Statement stmt = DBconn.createStatement();
String sql;
sql = "select surname, id, age\n"
+ "from customers \n"
+ "where name = \"maria\" \n"
+ "order by id;";
ResultSet rs = stmt.executeQuery(sql);

我还阅读了有关设置类路径的信息,如here所述:

  • 右键单击您的项目。

  • 选择属性。

  • 点击左侧的“库”。

  • 在“编译”选项卡下 - 单击“添加 Jar/文件夹”按钮。

    但是 NetBeans 中没有“属性/库”选项...

我使用 Maven,并且某些库添加了以下依赖项:

<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>14</version>
<type>pom</type>
</dependency>

也许有一些解决方法,或者其他自动添加它的方法?它应该很简单,但我没有经验并且在这方面浪费了很多时间。请帮忙。

编辑:谢谢您的回复,是的,我在 localhost:3306 [root] 使用 MySQL 服务器。我在这里安装了 MySQL JDBC 连接器:

/Applications/NetBeans/NetBeans 8.0.app/Contents/Resources/NetBeans/ide/modules/ext/mysql-connector-java-5.1.23-bin.jar

当我进入“服务”-->“驱动程序”-->“MySQL(连接器/J驱动程序)”时,驱动程序类路径与您的建议完全相同,所以我使用 Class.forName("com.mysql. jdbc.Driver”)现在。我右键单击“MySQL(连接器/J 驱动程序)”驱动程序,然后转到“使用...连接”-->“本地主机,端口 3306,用户,密码”。现在已连接,我看到新的连接。但我仍然得到 ClassNotFoundException。

编辑 2 - 这个解决方案对我有用:

我在 pom.xml 中的依赖项中添加了以下内容:

    </dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.23</version>
</dependency>

...以及构建的应用程序;驱动程序已下载并安装。就这么简单...我花了很多时间在这上面...它有效 - 是的! :)

最佳答案

您正在 MySQL 数据库上使用 Oracle JDBC 驱动程序,您应该使用

    Class.forName("com.mysql.jdbc.Driver");

编辑:感谢@duffymo和@Mark-Rotteveel的评论,他们注意到连接的URL也是错误的,正确的连接是:

    Connection DBconn;
String USER = "root";
String PASS = "root";
DBconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/RestToolDatabase?" + "user="+USER+"&password="+PASS);

关于java - JDBC 驱动程序 - ClassNotFoundException、NetBeans,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25120200/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com