我目前正在使用这个简单的代码来尝试连接到我的数据库在这台计算机上(在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文件?我不太确定如何修复这个错误,所以任何帮助将是伟大的。
如果你加载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;
我不知道你从哪里得到这段代码,但它包含几个错误:
-
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
中的瘦驱动程序使用服务名称和端口访问数据库,您应该使用瘦风格的服务名称语法,如Oracle JDBC开发人员指南中概述的那样。因此,最终的JDBC URL格式应该是:-
jdbc:oracle:thin:scott/tiger@//localhost:1521/xe
或 -
jdbc:oracle:thin:@//localhost:1521/xe
,如果您不想在JDBC URL中传递用户名和密码。
-
Java使用称为"Classpath"的东西来定位通常包含在JAR文件中的类(尽管并非总是如此)。
这个"classpath"选项是通过命令行执行使用——classpath或-cp选项来设置的。您应该使用这个选项调用java命令,指定您下载的JAR文件的位置,其中包含Oracle JDBC驱动程序。
如果你使用的是IDE,根据你的IDE,很可能这个选项可以通过寻找像"Libraries","Modules"或Classpath本身的选项来自动设置。您使用的是哪个IDE ?