2,springboot集成oracle数据库

前面,我们已经在本地创建了oracle表空间、登录用户和一张用户表:https://www.cnblogs.com/seeall/p/14016491.html

 

1,测试一下数据库连接

 结果,说明数据库连接没有问题。

 

2,使用数据库连接池

以druid为例:

2.1,pom引入druid(有数据库连接池功能)相关依赖

<!-- druid 数据库连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.23</version>
</dependency>

 

2.2,在springboot项目的配置文件appllication.yml或者appllication.properties配置数据源和连接池属性

遇到的问题:

a,从别的地方copy过来要特别注意空格和回车,不然属性会获取不到,手打基本没问题;

b,bootstrap.yml文件不生效,是因为bootstrap.yml是springcloud的配置文件,springcloud是基于springboot的,

  只有在springcloud项目中bootstrap.yml会比application.yml优先级高,而此处不生效是因为此时的项目仍然为springboot项目,

  不是springcloud项目,按网上的说法,pom引入spring-cloud-context依赖后,仍然在install过程中报错了,此处就先不管了,

  等以后提升到springcloud项目后,再分析为什么bootstrap.yml不生效;

 

2.3,使用步骤2.2中配置,注入数据源

 @ConfigurationProperties是springboot的注解,通过这个注解,项目可以获取到对应的配置属性,并返回数据源,

不需要你手动set url/driver/username/password;

遇到的问题:自动扫描的类中,如controller层和service层的类,无法注入上面的数据源bean,反而普通的类(非扫描范围里的类)可以注入

 最后曲线救国,使用以下步骤2.4的方式在扫描范围里的类可以注入“数据源”;

 

2.4,使用步骤2.3的数据源生成JdbcTemplate

首先,pom引入jdbcTemplate相关的jar包:

<!-- 使用JdbcTemplate需要的jar包 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
</dependency>

遇到的问题;

spring-tx下有红色波浪线,install无法下载spring-tx,是因为我的maven的settings配置文件配了3个镜像,从其中一个下载失败后,就不去其他镜像下载了;

而我的另一个项目,同样的依赖,从其中一个下载失败后,还会去其他镜像下载,直到成功;最后我在settings文件里,只保留了能成功下载的镜像,更新依赖后就好了,如下:

,原因未知,和镜像的选择策略有关,可以去网上看看;

其次,

遇到的问题:

1,controller无法引入service层的类,是因为service层的类不在扫描范围内,加入扫描就可以了,如下:

 

2,奇怪的是,步骤2.3中数据源那个bean无法在controller或service注入,但是jdbcTemplate的bean可以在controller和service中注入,

 他们之间就差了一个@ConfigurationProperties注解,原因有待考证?

 

 

 2.5,看下效果

 

posted @ 2020-11-23 18:01  seeAll  阅读(9196)  评论(1编辑  收藏  举报