【问题标题】:Java Oracle localhost database connection (java.lang.ClassNotFoundException)Java Oracle localhost 数据库连接 (java.lang.ClassNotFoundException)
【发布时间】:2011-07-24 06:42:37
【问题描述】:

我目前正在使用这个简单的代码来尝试连接到这台计算机上的数据库(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 文件中?我不太确定如何解决这个错误,所以任何帮助都会很棒。

【问题讨论】:

    标签: java mysql exception jdbc


    【解决方案1】:

    如果您加载 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; 
    

    【讨论】:

    • 感谢您的提示,我现在正在使用该提示,但我仍然在线程“main”java.lang.ClassNotFoundException:oracle.jdbc.driver.OracleDriver 中收到此异常,我将查看我收到的其他回复看看我能不能解决这个问题
    • 类路径中没有 JAR。简单。
    • jar 会是 odbc5.jar 吗?我会把它放在.classpath所在的项目文件夹中?
    • @user828727,为了确保你已经加载了类,你可以在你的代码中添加一个import oracle.jdbc.driver.OracleDriver;。顺便说一句,您也可以在 Oracle classes12.jar 中找到该课程。
    • 编辑:没关系,我只是通过右键单击项目-> 属性-> java 构建路径-> 库并单击外部 jars 来添加 jar,仍然有错误....但是哦,哈哈
    【解决方案2】:

    我不知道你从哪里得到这个代码,但它包含几个错误:

    • String driverName = "org.gjt.mm.mysql.Driver"; 用于访问 MySQL 数据库。如果您打算访问 MySQL 实例,请使用com.mysql.jdbc.Driverorg.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 开发人员指南中所述。因此,您最终的 JDBC URL 格式应该是:
      • jdbc:oracle:thin:scott/tiger@//localhost:1521/xe
      • jdbc:oracle:thin:@//localhost:1521/xe 如果您不想在 JDBC URL 中传递用户名和密码。

    【讨论】:

    • 你说的很对,不知怎的,我得到了一些我想连接到的错误服务器的示例代码,大声笑,介意我为一些 oracle 示例指明正确的方向吗?
    • 好吧,我认为您应该开始使用JDBC trail from the Java tutorial。大多数数据库都可以学习 JDBC,所以如果您是第一次学习 JDBC,请不要费心阅读特定于数据库的教程。作为初学者,您唯一需要关心的数据库特定项目是 JDBC 驱动程序类和 JDBC URL 格式。将 Oracle JDBC 开发人员指南用作针对 Oracle 进行 JDBC 编程的参考(而不是入门)。
    【解决方案3】:

    Java 使用称为“类路径”的东西来定位 JAR 文件中经常包含的类(但并非总是如此)。

    此“类路径”选项是通过命令行执行使用 --classpath 或 -cp 选项设置的。您应该使用此选项调用 java 命令,指定您下载的 JAR 文件的位置,其中包含 Oracle JDBC 驱动程序。

    如果您使用的是 IDE,则很可能可以通过查找“库”、“模块”或类路径本身等选项来自动设置此选项,具体取决于您的 IDE。您使用的是哪个 IDE?

    【讨论】:

    • 仅供参考,这适用于 2 项目-> 属性-> java 构建路径-> 库并单击外部 jars
    • 正如我所说,选项和菜单取决于您的 IDE。
    • 我明白了,顺便说一句,这里是日食。感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2020-07-07
    • 2011-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2016-12-31
    • 2021-11-24
    • 1970-01-01
    相关资源
    最近更新 更多