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 > 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