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
相关产品推荐
相关产品推荐

