You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java连接Oracle执行CRUD报错:找不到OracleDriver类

解决Oracle JDBC驱动ClassNotFoundException问题

你遇到的java.lang.ClassNotFoundException: oracle.jdbc.driver.OracleDriver,核心原因是ojdbc11.jar没有被正确添加到项目的运行类路径中,以下是具体解决步骤及优化建议:

1. 修正驱动类名(可选但推荐)

对于ojdbc11(适配Oracle 12c+、JDK 11+),Oracle官方推荐使用新的驱动类:

oracle.jdbc.OracleDriver

替代旧的oracle.jdbc.driver.OracleDriver。同时从JDBC 4.0开始,Class.forName()语句可以直接省略,DriverManager会自动扫描类路径中的驱动类。

2. 将ojdbc11.jar添加到项目类路径(关键步骤)

以IntelliJ IDEA为例:

  • 按下快捷键Ctrl+Alt+Shift+S打开项目结构窗口
  • 切换到「Modules」→「Dependencies」标签页
  • 点击右上角的「+」按钮,选择「JARs or directories...」
  • 定位到你存放ojdbc11.jar的目录,选中该jar文件后点击「OK」
  • 确保该依赖的「Scope」设置为「Compile」或「Runtime」(默认Compile即可)
  • 依次点击「Apply」→「OK」保存设置

3. 验证运行类路径

从你的错误日志可以看到,当前运行命令的classpath仅包含项目编译输出目录:

-classpath C:\Eclipse\Intellij\CRUDPuro\out\production\CRUDPuro

添加驱动jar后,IDEA会自动将其加入运行类路径,再次执行即可解决找不到驱动类的问题。

代码优化建议

使用try-with-resources语法自动关闭数据库连接、Statement等资源,避免手动关闭可能引发的异常:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

public class Main {
    public static void main(String[] args) throws Exception {
        try (Connection con = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XEPDB1", "hr", "hr");
             Statement st = con.createStatement()) {
            st.executeUpdate("CREATE TABLE student(rno number, name varchar(20), branch varchar2(20))");
            System.out.println("表创建成功");
        }
    }
}

内容的提问来源于stack exchange,提问作者Rodrigo Santos

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.02 05:04:55