我进行了很多搜索并花了很多时间尝试注册 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/