前言
分享一个工作上遇到的问题,使用JDBC连接DB2数据库,我这里使用的是Gradle,我发现网上使用Gradle的太少了,大部分使用的是maven,不论使用哪一个,都建议下载jar包到本地,使用手动添加进项目里。废话少说直接开始!
1.下载db2jcc4驱动
这边可以去官网下载 https://www.ibm.com/support/pages/db2-jdbc-driver-versions-and-downloads 没有IBM账号需要先注册一个账号,然后找到你需要的版本和系统所对应的文件,解压文件。
去到此目录下,里面有个压缩包解压就有db2jcc4.jar包了。
2.准备配置文件
下面是添加到application.yml文件中的配置,注意格式对齐
之后更改用户名和密码,还有测试的表名在这里插入代码片
Spring
datasource:
type: com.alibaba.druid.pool.DruidDataSource
#这边会报红即使引入jar包后还是会,但是项目照样可以启动和访问数据,可以不管
driver-class-name: com.ibm.db2.jcc.DB2Driver
url: jdbc:db2://192.168.1.78:50000/SAMPLE:currentSchema=DB2INST1;
username: /*用户名*/
password: /*密码*/
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效 注意这里DUAL是检测的表名,可以是当前schema下的任意一张表
validationQuery: SELECT 1 FROM /* 表名*/
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
3.引入jar包
以下是针对使用Gradle的
在项目里和src包的同一级目录中新建一个lib,把刚刚下载的驱动添加到lib包下
然后在build.gradle中配置
dependencies {
implementation files('lib/db2jcc4.jar')
}
以上是使用Gradle
如果使用的是maven,打开控制台在 jar 包同一级目录下执行如下命令将 jar 包安装到本地仓库:
注意是和jar包同一级
mvn install:install-file -Dfile=db2jcc4.jar -DgroupId=com.ibm.db2 -DartifactId=db2jcc4 -Dversion=4.26.14 -Dpackaging=jar
安装完毕后,项目中就可以在pom文件中引入了:
<dependency>
<groupId>com.ibm.db2</groupId>
<artifactId>db2jcc4</artifactId>
<version>4.26.14</version>
</dependency>
不知道版本的可以使用以下命令查看版本号
java -cp ./db2jcc4.jar com.ibm.db2.jcc.DB2Jcc -version