我经常搜索并花了很多时间尝试注册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使用MySQL服务器:3306 [root]。我在这里安装了MySQL JDBC连接器:
/Applications/NetBeans/NetBeans 8.0.app/Contents/Resources/NetBeans/ide/modules/ext/mysql-connector-java-5.1.23-bin.jar
当我转到“服务”时 - &gt; “司机” - &gt; “MySQL(Connector / J驱动程序)”完全按照你的建议有驱动程序类路径,所以我现在使用Class.forName(“com.mysql.jdbc.Driver”)。 我右键单击“MySQL(Connector / J driver)”驱动程序并转到“Connect Using ...” - &gt; “localhost,端口3306,用户,密码”。它现在连接,我看到新的连接。但我仍然得到ClassNotFoundException。
我在pom.xml中添加了以下依赖项:
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.23</version>
</dependency>
......和建设申请;驱动程序已下载并安装。就这么简单......我花了很多时间在这上面......它有效 - 是的! :)
答案 0 :(得分:1)
您正在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);
答案 1 :(得分:1)
设置类路径:
和包装相关的图书馆,其相对路径为&#39; dist&#39; :
答案 2 :(得分:0)
我认为JDBC JAR不属于该目录。 CNF例外支持我。
我建议将JAR放在您的项目WEB-INF / lib中,重新打包WAR,然后重试。
这一行是正确的:
Class.forName("oracle.jdbc.driver.OracleDriver");
完整的类名必须与JAR中的名称相匹配。这是唯一能做到的。
您必须使用与您的数据库匹配的驱动程序:Oracle for Oracle,MySQL for MySQL。你用的是什么数据库?
答案 3 :(得分:0)
cmd = r'''
echo "CPU `LC_ALL=C top -bn1 | grep "Cpu(s)" | sed "s/.*, *\([0-9.]*\)%* id.*/\1/" | awk '{print 100 - $1}'`% RAM `free -m | awk '/Mem:/ { printf("%3.1f%%", $3/$2*100) }'` HDD `df -h / | awk '/\// {print $(NF-1)}'`"
'''
这对我有用。由于Netbeans apache中没有属性和库。祝你好运。