Boot项目原配Mysql数据库 。业务需要加上sqlserver数据库 网上看了两天 趟了不少坑。
其实网上帖子挺全的,我遇到的问题没有太多相关介绍。现在搞好后分享给大家,自己也做个记录。
按需配置重点是数据库jar包跟bootjar包。版本无需考虑
com.alibaba
druid
1.1.14
mysql
mysql-connector-java
runtime
org.jfree
jfreechart
1.0.19
xml-apis
xml-apis
bcprov-jdk14
bouncycastle
org.springframework.boot
spring-boot-devtools
true
org.springframework.boot
spring-boot-starter-test
test
junit
junit
com.auth0
java-jwt
3.4.0
org.apache.commons
commons-pool2
org.apache.commons
commons-lang3
net.sf.json-lib
json-lib
2.4
jdk15
org.projectlombok
lombok
com.itextpdf
itextpdf
5.4.2
com.itextpdf.tool
xmlworker
5.4.1
com.itextpdf
itext-asian
5.2.0
org.xhtmlrenderer
flying-saucer-pdf
9.0.3
org.freemarker
freemarker
io.springfox
springfox-swagger2
2.9.2
io.springfox
springfox-swagger-ui
2.9.2
commons-io
commons-io
2.2
org.drools
drools-core
7.16.0.Final
org.drools
drools-compiler
7.16.0.Final
org.drools
drools-templates
7.16.0.Final
org.kie
kie-api
7.16.0.Final
org.kie
kie-spring
7.16.0.Final
javax.servlet
javax.servlet-api
javax.servlet
jstl
org.apache.tomcat.embed
tomcat-embed-jasper
org.apache.tomcat
tomcat-jsp-api
org.springframework.boot
spring-boot-configuration-processor
true
上面是pom (我懒了,不想摘出来。说实话我们单一项目boot 依赖我都没动,手动加了个sqlserver数据库jar包,其他的都没改)
spring:
datasource:
test1:
jdbc-url: jdbc:mysql://192.168.0.150:3306/gdsdb?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC
username: root
password: ***
driver-class-name: com.mysql.cj.jdbc.Driver
test2:
jdbc-url: jdbc:sqlserver://192.168.0.150:1433;DatabaseName=gdsdb
username: sa
password: ***
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
我这里使用的是yml 不管是yml和另外一直格式都可以。格式不一样而已
介绍: spring:datasource 就不讲了
1. test1 test2 是自定义名称,可以更换
2.数据库路径 名称必须是 jdbc-url 不是这个会报错
3. 类型 boot2.0以后 driver-class-name
//@EnableScheduling
//@SpringBootApplication(exclude={DataSourceAutoConfiguration.class},scanBasePackages = {"com.XXX.XXX","com.XXX.XXX","com.XXX.XXX"})
@SpringBootApplication(exclude={DataSourceAutoConfiguration.class})
public class Gds2KApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(Gds2KApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
return application.sources(Gds2KApplication.class);
}
}
这里要说明一下@EnableScheduling 是定时器相关注解,但是下面有配置取消Boot自动配置 所以会有出入。因为我们目前项目中没用到定时器。所以暂时注掉了,我准备以后有需要再研究怎么开启。
@SpringBootApplication
在controller同级加个dataconfig(名字可更换)
把这两个文件直接粘进去(我附带文件里面有demo 可直接下载) 因为我是两个数据库。所以两个文件。如果配置多个数据库 可以多配置文件。里面内容是一样的。下面是需要修改的内容
讲解:
1.红框1的位置。是你数据库mapper包的路径
2.红框2的位置。是你yml文件配置的名称
3.里面有个依赖引错了。把上面import删了 再引个boot的就行。
到这里就完成了,可以启动尝试
遇到问题 再缕一缕文章 看看是哪里漏了。实在找不到错误留言给我
demo下载地址
有两个都遇到的问题
Property ‘sqlSessionFactory‘ or ‘sqlSessionTemplate‘ are required
Failed to configure a DataSource: ‘url’ attribute is not specified and no embedded datasource could be configured
可以看我这篇文章 文章链接