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

19

请问是否有人能够帮我解决这个问题。我在使用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>
请问我是否做错了什么?提前感谢。

1
当应用程序运行时,您需要确保ojdbc.jar在CLASSPATH中。例如,如果您正在创建Web应用程序,则ojdbc.jar应存在于WAR文件的WEB-INF / lib中。 - Sergey Makarov
@SergeyMakarov 你好Sergey,感谢您的快速回复。不过,我只是在MyEclipse中进行测试... - David Dai
你需要为你的Eclipse项目设置构建路径,这个链接可能会有所帮助 - http://www.wikihow.com/Add-JARs-to-Project-Build-Paths-in-Eclipse-(Java)。 - Sergey Makarov
1
@SergeyMakarov 再次感谢您的回复。然而,当我将类内容替换为“org.apache.commons.dbcp.BasicDataSource”时,它可以正常工作。非常奇怪。 - David Dai
你是否使用任何构建工具,如Maven? - JToddler
9个回答

11

请确保您的类路径中添加了ojdbc.jar。如果需要,您可以通过打开.classpath文件并查找ojdbc.jar条目进行双重确认。如果您没有它,请按照下面提到的方法从Maven仓库下载:

        <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
@kainix,是的,您在工作场所使用时确实遇到了问题。您仍然可以选择将其安装为Maven构件到您的存储库中并使用它。但是,这又回到了同样的问题,即获得访问这些许可证JAR文件的正确方式是什么?对此我无法回答。 - Jagadeesh

6

这里下载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 tomcat安装目录下的lib目录中。

D:\TOOLS\apache tomcat server\Tomcat 8.0\lib

这解决了我的问题。


2
如果您正在使用Maven作为构建工具,则添加以下依赖项。确保您拥有与数据库版本对应的ojdbcXX.jar文件的正确版本。对于我来说,我有一个Oracle 11g数据库,因此我使用ojdbc6.jar。
步骤1)添加依赖项。
<dependency>
   <groupId>com.oracle</groupId>
   <artifactId>ojdbc</artifactId>
   <version>6</version>
   <scope>system</scope>
   <systemPath>C:\Users\AkhileshPC\Downloads\ojdbc6.jar</systemPath>
</dependency>

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

命令 > mvn install:install-file "-Dfile=Downloads\ojdbc6.jar" "-DgroupId=com.oracle" "-DartifactId=ojdbc6" "-Dversion=11.2.0.1" "-Dpackaging=jar"

设置maven本地存储库图像

第三步) 确保您的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文件夹路径图像

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


1
在我的情况下,问题是将范围设置为runtime
<dependency>
    <groupId>com.microsoft.sqlserver</groupId>
    <artifactId>mssql-jdbc</artifactId>
    <version>7.0.0.jre8</version>
    <scope>runtime</scope>
</dependency>

1

只需像下面图片中那样将ojdbc6.jar复制到tomcat/lib文件夹中。 示例 tomcat/lib/


0

尝试一下

<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


0
我在InteliJ中解决了它,方法如下:
文件 -> 项目结构 -> 库 -> 点击“+”(添加新库)-> 在文件系统下指向ojdbc.jar的路径(可以手动下载或使用一些构建工具)。

0

我尝试使用 IDEA 添加 ojdbc 到 lib,但无效。

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

没有致命错误。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接