Spring JDBC 无法加载 JDBC 驱动程序类 [oracle.jdbc.driver.OracleDriver]

Posted

技术标签:

【中文标题】Spring JDBC 无法加载 JDBC 驱动程序类 [oracle.jdbc.driver.OracleDriver]【英文标题】:Spring JDBC Could not load JDBC driver class [oracle.jdbc.driver.OracleDriver] 【发布时间】:2013-07-28 06:55:09 【问题描述】:

我想知道是否有人可以帮助我解决这个问题。我在尝试使用 Spring JDBC 编写代码时遇到了一个问题。当我运行服务器时,我收到了标题中提到的消息。我google了一下,有人说你应该导入ojdbc.jar。但是,我已经导入了它。这是我的代码:

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" />
    <property name="url" value="jdbc:oracle:thin:@192.168.0.13:1521/orcl" />
    <property name="username" value="Hibernate" />
    <property name="password" value="123456" />
    </bean>

</beans>

如果我做错了什么,请提出建议。非常感谢。

【问题讨论】:

当应用程序运行时,您需要确保 ojdbc.jar 在您的 CLASSPATH 中。例如,如果您正在创建一个 Web 应用程序 - ojdbc.jar 应该存在于您的 WAR 文件的 WEB-INF/lib 中。 @SergeyMakarov 嗨,谢尔盖,感谢您的快速回复。但是,我只是在 MyEclipse 中测试它... 您需要为您的 Eclipse 项目设置构建路径,这可能会有所帮助 - wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-(Java) @SergeyMakarov 再次感谢您的回复。但是,当我用以下内容替换课程内容时:“org.apache.commons.dbcp.BasicDataSource”效果很好。很奇怪。 您是否使用过任何构建工具,例如 maven ? 【参考方案1】:

确保您已将 ojdbc.jar 添加到您的类路径中。如果需要,您还可以通过打开 .classpath 文件并查找 ojdbc.jar 条目来仔细检查它。如果没有,请从 maven repo 下载它,如下所述:

        <dependency>
            <groupId>com.oracle</groupId>
            <artifactId>ojdbc6</artifactId>
            <version>11.2.0.3</version>
        </dependency>
.......

    <repositories>
        <repository>
            <id>codelds</id>
            <url>https://code.lds.org/nexus/content/groups/main-repo</url>
        </repository>
    </repositories>

【讨论】:

@jagadesh,oracle jdbc.jar 是否包含在 oracle 许可证中,这就是为什么它不在 maven 上的原因?另外,如果我将它用于办公室工作,我会遇到麻烦吗? @kainix,是的,您在工作场所使用确实有问题。您仍然可以选择将其作为 Maven 工件安装到您的存储库并使用它。但是,它又回到了同一个问题,即访问这些许可证 jar 的正确方法是什么?我无法回答。【参考方案2】:

从here下载ojdbc jar

ojdb6.jar 放在项目的某个文件夹中(让我们使用lib)。

<dependency>
    <groupId>com.oracle</groupId>
    <artifactId>ojdbc</artifactId>
    <version>11.2.0</version>
    <scope>system</scope>
    <systemPath>$basedir/lib/ojdbc6.jar</systemPath>
</dependency>

然后做:

mvn install:install-file \
-Dfile=path/to/ojdbc6.jar \
-DgroupId=com.oracle \
-DartifactId=ojdbc6 \
-Dversion=11.2.0 \
-Dpackaging=jars

【讨论】:

【参考方案3】:

我只是把ojdbc6.jar放在apache tom cat安装目录的lib目录下

D:\TOOLS\apache tomcat 服务器\Tomcat 8.0\lib

它解决了我的问题。

【讨论】:

【参考方案4】:

在我的情况下,问题是将范围设置为runtime

<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>7.0.0.jre8</version>
    <scope>runtime</scope>
</dependency>

【讨论】:

【参考方案5】:

只需将 ojdbc6.jar 复制到 tomcat/lib 文件夹中,如下图所示。 example tomcat/lib/

【讨论】:

【参考方案6】:

如果您使用 Maven 作为构建工具,请在下面添加此依赖项。确保您拥有与数据库版本对应的正确版本的 ojdbcXX.jar 文件。对我来说,我有一个 Oracle 11g 数据库,因此我使用的是 ojdbc6.jar。

第一步)添加依赖

<dependency>
   <groupId>com.oracle</groupId>
   <artifactId>ojdbc</artifactId>
   <version>6</version>
   <scope>system</scope>
   <systemPath>C:\Users\AkhileshPC\Downloads\ojdbc6.jar</systemPath>
</dependency>

第 2 步)在 Maven 本地存储库中安装 ojdbcXX.jar。

Command &gt; mvn install:install-file "-Dfile =Downloads\ojdbc6.jar" "-DgroupId=com.oracle" "-DartifactId=ojdbc6" "-Dversion=11.2.0.1" "-Dpackaging=jar"

Setting up maven local repository image

步骤 3)确保您的 ojdbcXX.jar 文件在 .metadata 文件夹中相应项目的 WEB-INF\lib 文件夹中可用。

我的情况:

C:\Users\AkhileshPC\JavaSpring\.metadata\.plugins\org.eclipse.wst.server.core\tmp1\wtpwebapps\1007_Spring_Mvc_App_Crud\WEB-INF\lib

web-inf folder path Image

这三个步骤都完成后,问题就应该得到解决。

【讨论】:

【参考方案7】:

试试

<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
    <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
    <property name="url" value="jdbc:oracle:thin:schema_name/123456@192.168.0.13:1521:orcl" />
    <property name="username" value="Hibernate" />
    <property name="password" value="123456" />
    </bean>

</beans>

如果你使用 Spring Boot 2(我使用的是 Spring Boot 2.0.4.RELEASE,Oracle 数据库 12c),application.properties

spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver
spring.datasource.url=jdbc:oracle:thin:schema_name/123456@192.168.0.13:1521:xe
spring.datasource.username=Hibernate
spring.datasource.password=123456

(你必须在类路径中有ojdbc7.jar

【讨论】:

【参考方案8】:

我在 InteliJ 中这样解决它:

文件->项目结构->库->点击'+'(添加新的)->指向文件系统下的ojdbc.jar路径(之前手动下载或使用一些构建工具下载)

【讨论】:

【参考方案9】:

我尝试使用idea add ojdbc to lib,但是无效。

我的最终解决方案是将 ojdbc.jar 添加到 tomcat lib 目录然后重新启动它。

没有致命错误

【讨论】:

以上是关于Spring JDBC 无法加载 JDBC 驱动程序类 [oracle.jdbc.driver.OracleDriver]的主要内容,如果未能解决你的问题,请参考以下文章

Spring boot Oracle Gradle:无法加载驱动程序类:oracle.jdbc.OracleDriver

无法加载驱动程序类:com.mysql.jdbc.Driver Spring Boot

无法加载驱动程序类:com.mysql.jdbc.Driver 与 Gradle 和 Spring Boot

使用 MySQL 和 Docker 的 Spring Boot:IllegalStateException:无法加载驱动程序类:com.mysql.cj.jdbc.Driver

无法加载 JDBC 驱动程序类 [com.mysql.cj.jdbc.Driver]

Springboot 与 Sybase 服务器 - 无法加载驱动程序类:com.sybase.jdbc4.jdbc.SybDriver