首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JDBC驱动程序- ClassNotFoundException,NetBeans

问JDBC驱动程序- ClassNotFoundException,NetBeans
EN

Stack Overflow用户
提问于 2014-08-04 13:46:43
回答 4查看 14K关注 0票数 0

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

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

代码语言:javascript
复制
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

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

代码语言:javascript
复制
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);
}

..。而这个:

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

..。用这一行代替:

代码语言:javascript
复制
Class.forName("oracle.jdbc.driver.OracleDriver");

我总是得到ClassNotFoundException:

下面是我试图运行的代码:

代码语言:javascript
复制
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

  • 右击您的项目。

  • 选择属性。

  • 在左侧单击“库”。

  • 在“编译”选项卡下-单击“添加罐/文件夹”按钮。 但是在NetBeans中没有“属性/库”选项。

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

代码语言:javascript
复制
<dependency>
    <groupId>ojdbc</groupId>
    <artifactId>ojdbc</artifactId>
    <version>14</version>
    <type>pom</type>
</dependency>

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

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

代码语言:javascript
复制
/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驱动程序)“驱动程序,然后转到"Connect user.”-> "localhost,端口3306,user,password“。现在连接起来了,我看到了新的联系。但我还是得到了ClassNotFoundException。

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

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

代码语言:javascript
复制
    </dependency>
        <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.23</version>
</dependency>

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

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-08-04 13:59:33

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

代码语言:javascript
复制
    Class.forName("com.mysql.jdbc.Driver");

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

代码语言:javascript
复制
    Connection DBconn;
    String USER = "root";
    String PASS = "root";
    DBconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/RestToolDatabase?" + "user="+USER+"&password="+PASS);
票数 1
EN

Stack Overflow用户

发布于 2017-09-21 15:58:42

设置类路径:

  1. 下载JAR JDBC连接器/驱动程序
  2. 在项目的子文件夹中复制文件(例如: libs) (不是“src”)
  3. 项目->属性->库->添加Jar/文件夹->选择文件

在“dist”中具有相对路径的和封装依赖的librairies:

  1. 项目->构建->打包->检查“副本依赖的Librairies”
票数 1
EN

Stack Overflow用户

发布于 2014-08-04 14:01:30

我认为JDBC不属于该目录。CNF的例外情况支持我。

我建议将这个JAR放到您的项目WEB/lib中,重新打包WAR,然后再试一次。

这一行是正确的:

代码语言:javascript
复制
Class.forName("oracle.jdbc.driver.OracleDriver");

完整的类名必须与JAR中的名称匹配。这是唯一能做到的。

您必须使用与数据库匹配的驱动程序:,MySQL用于MySQL。你用的是什么数据库?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25120200

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档