spring boot配置连接sqlserver、mysql、达梦数据源以及进行多数据库查询(避坑总结)
在Spring Boot中进行sqlserver、mysql、达梦之间的配置,并且可以在同一个项目下进行多数据源的引用,实现多个数据库之间的操作
·
说明
在Spring Boot中进行sqlserver连接跟mysql之类的连接有点差别,mysql跟达梦连接方式一样,测试项目使用的使jdk1.8有的时候版本导入不正确可能会出现bug
步骤
1、导包
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>8.4.1.jre8</version>
</dependency>
注:
有的时候导进去包之后idea中还是爆红,最常见的原因就是(1)仓库没有配置正确
在setting中,其中也包括达梦镜像仓库修改如下:
<localRepository>自定义仓库地址</localRepository>
<localRepository><!-- 添加镜像仓库配置-->
<repositories>
<!-- 使用阿里云镜像仓库用来提高下载速度-->
<repository>
<id>aliyun</id>
<name>aliyun Repository</name>
<url>http://maven.aliyun.com/nexus/content/groups/public</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<!-- 使用 DM 的镜像仓库来下载驱动包-->
<repository>
<id>dc</id>
<name>dc Repository</name>
<url>http://119.96.100.222:8181/repository/maven-releases/</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
<repository>
<id>clojars</id>
<url>http://clojars.org/repo/</url>
</repository>
</repositories></localRepository>
maven仓库中手动下载的jar包将其放在jre下之后,需要进行命令的导入以sqljdbc为例:
mvn install:install-file -Dfile=sqljdbc4-2.jar -Dpackaging=jar -DgroupId=com.microsoft.sqlserver -DartifactId=sqljdbc4 -Dversion=4.2
2、yml中进行配置
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://localhost:1433;databaseName=实例名;integratedSecurity=false
username: sa
password: sa
在mysql数据库中将会变得容易简单
导入包
<!-- mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
yml中配置
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/数据库名?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
username: root
password: root
达梦数据库跟mysql相似
唯一差别在于写语句的时候需要加上模式名,否则会出先报错找不到实力【】的情况
<dependency>
<groupId>com.dameng</groupId>
<artifactId>DmJdbcDriver18</artifactId>
<version>8.1.2.79</version>
</dependency>
url: jdbc:dm://IP:5236/eatuarycenter?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
username: SYSDBA
password: SYSDBA
driver-class-name: dm.jdbc.driver.DmDriver
另外在写一下多数据源在spring中进行配置:
导包
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
yml中配置
spring:
datasource:
dynamic:
primary: dm #设置默认的数据源或者数据源组,默认值即为master
strict: false #严格匹配数据源,默认false. true未匹配到指定数据源时抛异常,false使用默认数据源
datasource:
数据源1:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://IP:端口号;databaseName=实例名;integratedSecurity=false
username: 用户名
password: 密码
数据源2:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://IP:端口号/数据库名?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
username: 用户
password: 密码
数据源3:
url: jdbc:dm://IP:端口号/数据库名?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf-8
username: 用户名
password: 密码
driver-class-name: dm.jdbc.driver.DmDriver
配置好之后将不同的数据源放在不同的包下,这样方便spring自动识别避免自动注入的时候出错,导致找不到相对应的包
在业务层上注明引用的数据源
@Service
@DS("数据源")
public class ServiceImpl
之后就可以进行多数据库进行查询了
更多推荐
已为社区贡献2条内容
所有评论(0)