Java Oracle本地主机数据库连接(Java.lang.ClassNotFoundException)
我目前正在使用这段简单的代码尝试连接到这台计算机上的数据库(Java) 由于某种原因,我不明白我会遇到这个错误Java Oracle本地主机数据库连接(Java.lang.ClassNotFoundException),java,mysql,exception,jdbc,Java,Mysql,Exception,Jdbc,我目前正在使用这段简单的代码尝试连接到这台计算机上的数据库(Java) 由于某种原因,我不明白我会遇到这个错误 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
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;
如果加载的是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;
Java使用称为“类路径”的东西来定位JAR文件中经常包含的类(但并不总是如此) 这个“classpath”选项是通过使用--classpath或-cp选项的命令行执行来设置的。您应该使用此选项调用java命令,指定下载的JAR文件(包含oraclejdbc驱动程序)的位置
如果您使用的是IDE,根据您的IDE,可以通过查找“库”、“模块”或类路径本身等选项自动设置此选项。您使用的是哪个IDE?Java使用一种称为“类路径”的东西来定位JAR文件中经常包含的类(但并不总是如此) 这个“classpath”选项是通过使用--classpath或-cp选项的命令行执行来设置的。您应该使用此选项调用java命令,指定下载的JAR文件(包含oraclejdbc驱动程序)的位置
如果您使用的是IDE,根据您的IDE,可以通过查找“库”、“模块”或类路径本身等选项自动设置此选项。您使用的是哪个IDE?我不知道您是从哪里获得此代码的,但它包含几个错误:
用于访问MySQL数据库。如果要访问MySQL实例,请使用stringdrivername=“org.gjt.mm.mysql.Driver”
com.MySQL.jdbc.Driver
将起作用,但为了向后兼容而保留它。如果要使用Type4驱动程序访问Oracle实例,请使用org.gjt.mm.mysql.Driver
;避免使用Oracle.jdbc.OracleDriver
,因为它已被弃用,并且可能在较新的驱动程序中不可用(特别是在为oracle 11g发布的驱动程序中)oracle.jdbc.driver.OracleDriver
表示您希望连接到MySQL实例。但你说的是访问Oracle。在这种情况下,Oracle驱动程序将无法工作,因为它可以识别特定格式的JDBC URL。要使用String url=“jdbc:mysql://”+serverName+“//”+mydatabase
/ojdbc5.jar
中的精简驱动程序使用服务名称和端口访问数据库,应使用,如《Oracle JDBC开发人员指南》中所述。因此,最终的JDBC URL格式应为:ojdbc6.jar
或jdbc:oracle:thin:scott/tiger@//localhost:1521/xe
如果您不想在jdbc URL中传递用户名和密码jdbc:oracle:thin:@//localhost:1521/xe
用于访问MySQL数据库。如果要访问MySQL实例,请使用stringdrivername=“org.gjt.mm.mysql.Driver”
com.MySQL.jdbc.Driver
将起作用,但为了向后兼容而保留它。如果要使用Type4驱动程序访问Oracle实例,请使用org.gjt.mm.mysql.Driver
;避免使用Oracle.jdbc.OracleDriver
,因为它已被弃用,并且可能在较新的驱动程序中不可用(特别是在为oracle 11g发布的驱动程序中)oracle.jdbc.driver.OracleDriver
表示您希望连接到MySQL实例。但你说的是访问Oracle。在这种情况下,Oracle驱动程序将无法工作,因为它可以识别特定格式的JDBC URL。要使用String url=“jdbc:mysql://”+serverName+“//”+mydatabase
/ojdbc5.jar
中的精简驱动程序使用服务名称和端口访问数据库,应使用,如《Oracle JDBC开发人员指南》中所述。因此,最终的JDBC URL格式应为:ojdbc6.jar
或jdbc:oracle:thin:scott/tiger@//localhost:1521/xe
如果您不想在jdbc URL中传递用户名和密码jdbc:oracle:thin:@//localhost:1521/xe
import oracle.jdbc.driver.OracleDriver代码>到您的代码。顺便说一句,你也可以在Oracleclasses12.jar
中找到这个类。编辑:不管怎样,我只是右键单击项目->属性->java构建路径->库并单击外部jar来添加jar,仍然有错误。。。。但是哦,谢谢你的提示,我现在正在使用它,但是我仍然在线程“main”java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver中得到这个异常。我将查看其他响应,看看是否可以清除这个异常。你在类路径中没有JAR。这个jar会是odbc5.jar吗?我会把它放在.classpath所在的项目文件夹中?@user828727,为了确保加载了该类,可以添加一个import oracle.jdbc.driver.OracleDriver代码>到您的代码。顺便说一句,你也可以在Oracleclasses12.jar中找到这个类