五分钟让你SpringBoot整合Mybatis-Plus-多数据源
SpringBoot三部曲:
pom依赖文件
<dependencies>
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot-starter</artifactId>
<version>3.1.1</version>
</dependency>
<dependency>
<groupId>com.microsoft.sqlserver</groupId>
<artifactId>mssql-jdbc</artifactId>
<version>9.4.1.jre8</version>
</dependency>
<!-- mybatis-plus依赖-->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-boot-starter</artifactId>
<version>3.5.1</version>
</dependency>
<!-- web依赖-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!--mysql-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<!-- lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
修改application.yml,如果没有则新建一个
spring:
application:
name: CONNECTION
datasource:
dynamic:
#指定主数据源,用作默认数据源,当调用方法没有指定数据源时将会默认使用master
primary: master
strict: false
datasource:
master:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://***:33306/*?serverTimezone=UTC
username: adminjd
password: 123456
db3:
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://***:33306/*?serverTimezone=UTC
username: adminjd
password: 123456
db2:
driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver
url: jdbc:sqlserver://***:1433;databaseName=***
username: sa2
password: 123456
#打印sql日志
mybatis-plus:
configuration:
log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
一切做完,开始实战demo,依次新建实体类、mapper、service文件
多数据源的关键变化是@DS()注解,这个注解可以用在mapper层、service层、甚至用在具体方法上
新建实体类
@TableName(value ="job_card")//用来修饰实体类,用于实体类和数据库实体表的名字映射
@Data//省略getter、setting、toString方法
public class JobCard implements Serializable {
@TableField//id专用
private String _id;
private int productionState;
@TableField(value = "jobcard_id")//字段名映射
private String jobCardId;
@TableField(value = "jobcard_id_no")
private String jobCardIdNo;
}
新建mapper文件
@Mapper
@DS("db2")
public interface JobCardMapper extends BaseMapper<JobCard> {//继承BaseMapper传入实体类,这里用到什么实体就传入什么实体
}
新建service文件
做完这一步,就可以直接使用mybatis-plus自带的单表增删改查操作
@DS("db2")
public interface JobCardService extends IService<JobCard> {
}
@Service
public class JobCardServiceImpl extends ServiceImpl<JobCardMapper, JobCard>
implements JobCardService{
}
这里指定了主数据源是master,所以如果使用默认数据源是不需要用到@DS()的