我搜索了很多,花了很多时间尝试注册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
我使用Maven,有些库添加了以下依赖项:
<dependency>
<groupId>ojdbc</groupId>
<artifactId>ojdbc</artifactId>
<version>14</version>
<type>pom</type>
</dependency>也许有一些解决办法,或者其他自动添加它的方法?这应该很简单,但我没有经验,而且在这方面浪费了很多时间。请帮帮忙。
编辑:谢谢您的回复,是的,我在localhost:3306root使用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驱动程序)“驱动程序,然后转到"Connect user.”-> "localhost,端口3306,user,password“。现在连接起来了,我看到了新的联系。但我还是得到了ClassNotFoundException。
编辑2-这个解决方案对我有效:
我在pom.xml中向依赖项添加了以下内容:
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.23</version>
</dependency>..。和构建的应用程序;驱动程序被下载并安装。就这么简单..。我花了很多时间在这上面..。它很管用-是的!)
发布于 2014-08-04 13:59:33
在MySQL数据库上使用Oracle驱动程序,应该使用
Class.forName("com.mysql.jdbc.Driver");编辑:感谢@duffymo和@的评论,他们注意到连接的URL也是错误的,正确的连接是:
Connection DBconn;
String USER = "root";
String PASS = "root";
DBconn = DriverManager.getConnection("jdbc:mysql://localhost:3306/RestToolDatabase?" + "user="+USER+"&password="+PASS);发布于 2017-09-21 15:58:42
设置类路径:
在“dist”中具有相对路径的和封装依赖的librairies:
发布于 2014-08-04 14:01:30
我认为JDBC不属于该目录。CNF的例外情况支持我。
我建议将这个JAR放到您的项目WEB/lib中,重新打包WAR,然后再试一次。
这一行是正确的:
Class.forName("oracle.jdbc.driver.OracleDriver");完整的类名必须与JAR中的名称匹配。这是唯一能做到的。
您必须使用与数据库匹配的驱动程序:,MySQL用于MySQL。你用的是什么数据库?
https://stackoverflow.com/questions/25120200
复制相似问题