Springboot 之 Mybatis-plus 多数据源( 二 )

以上,两个持久类的实现都是继承BaseMapper基类 , 该类提供了基本的增删改查的方法;要注意的是,TeacherMapper 类使用了@DS("slave_1")指定了数据源;而StudentMapper没有指定,使用的是默认的数据源 。
服务类的实现先定义操作学生和老师的两个接口
StudentService接口
package com.olive.service;import com.baomidou.mybatisplus.extension.service.IService;import com.olive.entity.StudentDO;public interface StudentService extends IService<StudentDO> {}TeacherService接口
package com.olive.service;import com.baomidou.mybatisplus.extension.service.IService;import com.olive.entity.TeacherDO;public interface TeacherService extends IService<TeacherDO> {}再定义接口的实现类
StudentServiceImpl类
package com.olive.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.olive.entity.StudentDO;import com.olive.mapper.StudentMapper;import com.olive.service.StudentService;import org.springframework.stereotype.Service;@Servicepublic class StudentServiceImpl extends ServiceImpl<StudentMapper, StudentDO>implements StudentService {}TeacherServiceImpl类
package com.olive.service.impl;import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;import com.olive.entity.TeacherDO;import com.olive.mapper.TeacherMapper;import com.olive.service.TeacherService;import org.springframework.stereotype.Service;@Servicepublic class TeacherServiceImpl extends ServiceImpl<TeacherMapper, TeacherDO>implements TeacherService {}观察接口定义和接口实现,套路非常标准 。都是实现和继承Mybatis-Plus提供的标准接口和基类
创建springboot引导类【Springboot 之 Mybatis-plus 多数据源】package com.olive;import org.mybatis.spring.annotation.MapperScan;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;@MapperScan("com.olive.mapper")@SpringBootApplicationpublic class Application {public static void main(String[] args) {SpringApplication.run(Application.class);}}测试package com.olive;import com.olive.service.StudentService;import com.olive.service.TeacherService;import org.junit.jupiter.api.Test;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.context.SpringBootTest;import com.olive.entity.StudentDO;import com.olive.entity.TeacherDO;@SpringBootTestpublic class MybatisPlusTest { @Autowired StudentService studentService; @Autowired TeacherService teacherService; @Test public void userSave() {StudentDO studentDO = new StudentDO();studentDO.setName("BUG弄潮儿");studentDO.setSex(1);studentDO.setGrade("一年级");studentService.save(studentDO);TeacherDO teacherDO = new TeacherDO();teacherDO.setName("Java乐园");teacherDO.setSex(2);teacherDO.setOffice("语文");teacherService.save(teacherDO); }}

推荐阅读