今天在使用IDEA构建Maven项目时,发现Oracle数据库JDBC驱动依赖使用不了,就在网上搜索了一下,下面是不能使用的原因。
由于Oracle授权问题,Maven3不提供oracle JDBC driver,我们也可以在Maven的中心搜索ojdbc驱动包,但是可以看到版本过于陈旧,即使有坐标,也下载不了。
为了可以在使用Maven构建的项目中使用Oracle JDBC driver,我们就必须手动添加Oracle的JDBC驱动依赖到本地仓库中。
既然要手动添加Maven依赖到本地仓库中,那么就必须要先得到Oracle数据库的JDBC驱动包,我们可以通过以下的方式获取:
方式一:通过Oracle官方网站下载相应版本
我们在浏览器中输入:
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html
由于我安装的Oracle数据库版本是11.2.0.1.0,因此我选择下载的是对应的11g版本下的
11.2.0.1.0版本,我们点击上图选中的连接,在页面中找到对应的11.2.0.1.0版本模块
由于Oracle数据库JDBC驱动包的使用的JDK版本有所区别,我们一定要下载对应的JDK版本的Oracle数据库JDBC驱动,JDK1.5的选择ojdbc.jar驱动包,如果是JDK1.6及以上版本的选择ojdbc6.jar驱动包,我的JDK环境是JDK1.8,那么选择ojdbc6.jar驱动包。
上面的方式可能由于某些原因是无法下载的。
方式二:通过Oracle数据库的安装目录获得(推荐)
我们安装完Oracle数据库后,可以在对应的数据库目录下找到Oracle数据库的JDBC驱动包,这个目录并不是统一的,在安装的时候是自己指定的,我的数据库实例安装在这个目录下,
那么我们在这个数据库实例中找到数据库驱动,一般是在{oracle实例安装目录}/dbhome_1/jdbc/lib目录中
补充
这个目录下包含9个jar包,ojdbc5.jar ojdbc6.jar这是两个数据库驱动jar包,上面已经说的很清楚了,不再赘述。
获取到Oracle数据库的JDBC驱动后,接下来就是手动向Maven的本地仓库中添加Oracle数据库的JDBC驱动依赖。
这里安装的前提是你的电脑必须安装了Maven,并且配置了Maven环境变量
本地Maven安装目录
Maven环境变量
M2_HOME
MAVEN_OPTS(配置这个参数,Maven构建项目更快更优)
path
由于我的IDEA配置了本地Maven,可以使用IDEA手动向Maven本地仓库中添加Oracle数据库的JDBC驱动依赖。
在上面我们已经查找到了Oracle驱动包位置:
E:OracleappAdministratorproduct11.2.0dbhome_1jdbclibojdbc6.jar
但是如果将Maven构建jar包的文件路径直接指向这个目录,可能出现会Oracle会拒绝访问,那么我们可以复制ojdbc6.jar到一个目录中,我选择的是E:Javaideasshojdbc6.jar
使用Maven的添加依赖(安装)命令:
mvn install:install-file
-Dfile=E:Javaideasshojdbc6.jar
-DgroupId=com.oracle
-DartifactId=ojdbc6
-Dversion=11.2.0.1.0
-Dpackaging=jar
我们可以使用各种工具向Maven仓库安装,比如DOS命令窗口,Eclipse的Maven插件,IDEA的Termial,工具不一样,但是操作都是一样的,指定的文件位置和Maven坐标都是一样的,我选择的是IDEA的Termial
我们看到Maven将这个jar包已经安装到本地Maven仓库中,找到这个仓库目录:
我们在Maven项目中添加如下Oracle驱动依赖
<!-- 添加oracle驱动依赖 -->
<dependency>
<groupId>com.oracle</groupId>
<artifactId>ojdbc6</artifactId>
<version>11.2.0.1.0</version>
</dependency>
Maven坐标一定要和自己构建Oracle驱动Maven依赖时相同,否则导入报错
由于最近在练习SSH项目,因此在项目中添加依赖:
我们可以你在Maven依赖图中直接找到:
我们来测试一下Oracle数据库的JDBC驱动
由于我在项目中使用了c3p0连接池配置数据源,那么得到的数据库连接Connection实例是经过c3p0连接池包装过的,也就是从数据库连接池里获取的。
applicationContext.xml部分配置
jdbc.properties属性文件
测试类