这是我参与11月更文挑战的第19天,活动详情查看:2021最后一次更文挑战
- SpringBoot 项目pom.xml文件添加如下maven依赖:
<!-- 阿里巴巴druid 连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>1.1.21</version>
</dependency>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.4.0</version>
</dependency>
- Spring Boot 集成 人大金仓数据库的application.yml文件配置如下:
spring:
datasource:
dynamic:
primary: master
datasource:
# 主库数据源
master:
driver-class-name: com.kingbase8.Driver
url: jdbc:kingbase8://127.0.0.1:54321/trs_cloud?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
username: root
password: 123456
druid:
# 初始化大小,最小,最大
initial-size: 10
min-idle: 10
max-active: 50
# 配置获取连接等待超时的时间
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
validation-query: SELECT dummy FROM DUAL
test-while-idle: true
test-on-borrow: false
test-on-return: false # 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙
filters: stat,log4j2
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录
connection-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
db-type: postgresql
# 监控配置
# Druid WebStatFilter配置
web-stat-filter:
enabled: true
url-pattern: /*
exclusions: /druid/*,*.gif,*.png,*.jpg,*.html,*.js,*.css,*.ico
# Druid StatViewServlet配置
stat-view-servlet:
enabled: true
url-pattern: /druid/*
# 登录监控界面的用户名以及密码,登录url为localhost:8080/druid
login-username: admin
login-password: admin
allow:
deny:
- 添加数据库连接dao、service、controller层,修改启动类扫描包
@MapperScan(basePackages = {"com.ozx.kingbase.dao"})
@ComponentScan(basePackages={"com.ozx.kingbase.service"})
@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})
public class KingbaseApplication {
public static void main(String[] args) {
SpringApplication.run(KingbaseApplication.class, args);
}
}
- 测试springBoot集成人大金仓数据库是否正常
@SpringBootTest
@Sl4j
class KingbaseApplicationTests {
@Autowired
private UserService userService;
@Test
void testGetUser() {
List<User> list = userService.list();
for (User user: list
) {
log.info("user:{}",user.toString());
}
}
}
注意点: 人大金仓数据库跟Oracle相似,在数据库下能创建对应模式,在application.yml文件中配置指定模式,默认模式是public,创建对应数据表结构、表数据。当多个表有相同字段名,需要指定模式进行检索。