我目前正在使用这个简单的代码尝试连接到这台计算机上的数据库(Java)
import java.sql.Connection;
import java.sql.DriverManager;
public class Main {
public static void main(String[] argv) throws Exception {
String driverName = "org.gjt.mm.mysql.Driver";
Class.forName(driverName);
String serverName = "localhost";
String mydatabase = "xe";
String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
String username = "scott";
String password = "tiger";
Connection connection = DriverManager.getConnection(url, username, password);
}
}
出于某种原因,我不明白我收到此错误
Exception in thread "main" java.lang.ClassNotFoundException: org.gjt.mm.mysql.Driver
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Unknown Source)
at Main.main(Main.java:10)
我认为这些类在ojdbc5.jar文件中?我不太确定如何解决这个错误,所以任何帮助都会很棒。
答案 0 :(得分:3)
如果加载 Oracle类而不是MySQL,则可能会更好:
String driverName = "oracle.jdbc.driver.OracleDriver";
Class.forName(driverName);
String serverName = "localhost";
String mydatabase = "xe";
String url = "jdbc:oracle:thin:@//" + serverName + ":1521/" + mydatabase;
答案 1 :(得分:1)
我不知道你从哪里获得这段代码,但它包含几个错误:
String driverName = "org.gjt.mm.mysql.Driver";
旨在用于访问MySQL数据库。如果您打算访问MySQL实例,请使用com.mysql.jdbc.Driver
; org.gjt.mm.mysql.Driver
可以使用,但保留它是为了向后兼容。如果您打算使用Type 4驱动程序访问Oracle实例,请使用oracle.jdbc.OracleDriver
;避免使用oracle.jdbc.driver.OracleDriver
,因为它已被弃用,并且可能在较新的驱动程序中不可用(特别是在为Oracle 11g发布的驱动程序中)。String url = "jdbc:mysql://" + serverName + "/" + mydatabase;
表示您想要连接到MySQL实例。但是你在谈论访问Oracle。在这种情况下,Oracle驱动程序根本不起作用,因为它识别某种格式的JDBC URL。要使用ojdbc5.jar
/ ojdbc6.jar
中的瘦驱动程序使用服务名称和端口访问数据库,您应该使用thin-style service name syntax,如Oracle JDBC Developer's Guide中所述。因此,您的最终JDBC URL格式应为:
jdbc:oracle:thin:scott/tiger@//localhost:1521/xe
或jdbc:oracle:thin:@//localhost:1521/xe
如果您不想在JDBC URL中传递用户名和密码。答案 2 :(得分:0)
Java使用名为“Classpath”的东西来定位JAR文件中经常包含的类(但并不总是如此)。
此“classpath”选项通过命令行执行使用--classpath或-cp选项设置。您应该使用此选项调用java命令,指定您下载的JAR文件的位置,包含Oracle JDBC驱动程序。
如果您正在使用IDE,则可以通过查找“库”,“模块”或类路径本身等选项自动设置此选项,具体取决于您的IDE。您使用的是哪个IDE?