学做美食的视频网站有哪些,音乐播放网站开发pc端,怎么查网站是在哪里备案的,怎么建设自己网站文章目录 目录 文章目录 前言 一、依赖和目录结构 二、使用步骤 2.1 两个数据源的不同引用配置 2.2 对应的mapper 2.3 定时任务处理 总结 前言 一、依赖和目录结构 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifa… 文章目录 目录 文章目录 前言 一、依赖和目录结构 二、使用步骤 2.1 两个数据源的不同引用配置 2.2 对应的mapper 2.3 定时任务处理 总结 前言 一、依赖和目录结构 dependenciesdependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdversion2.3.12.RELEASE/version/dependencydependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-web/artifactIdversion2.3.12.RELEASE/version/dependencydependencygroupIdcom.baomidou/groupIdartifactIdmybatis-plus-boot-starter/artifactIdversion3.5.1/version/dependencydependencygroupIdmysql/groupIdartifactIdmysql-connector-java/artifactIdversion5.1.49/version/dependency/dependencies 配置文件
server:port: 8089spring:datasource:remote :driver-class-name: com.mysql.jdbc.Driverjdbc-url: jdbc:mysql://192.168.31.2/student?useUnicodetruecharacterEncodingUTF-8useSSLfalseserverTimezoneUTCusername: rootpassword: 111local :driver-class-name: com.mysql.jdbc.Driverjdbc-url: jdbc:mysql://192.168.31.1/student?useUnicodetruecharacterEncodingUTF-8useSSLfalseserverTimezoneUTCusername: rootpassword: 111mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImpl #开启sql日志二、使用步骤
2.1 两个数据源的不同引用配置
package com.config;import com.baomidou.mybatisplus.extension.spring.MybatisSqlSessionFactoryBean;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.SqlSessionTemplate;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.boot.jdbc.DataSourceBuilder;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;import javax.annotation.Resource;
import javax.sql.DataSource;/**** date Created in 2023/12/2 19:51* description本地数据源* modified By* version:*/
Configuration
MapperScan(basePackages com.local.Mapper, sqlSessionTemplateRef sqlSessionTemplate1)
public class MybatisLocalConfig {BeanConfigurationProperties(prefix spring.datasource.local)public DataSource dataSource1() {return DataSourceBuilder.create().build();}Beanpublic SqlSessionFactory sqlSessionFactory1(Qualifier(dataSource1) DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean factoryBean new MybatisSqlSessionFactoryBean();factoryBean.setDataSource(dataSource);// 设置mapper.xml文件的位置factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(classpath*:localmapper/*.xml));return factoryBean.getObject();}Beanpublic SqlSessionTemplate sqlSessionTemplate1(Qualifier(sqlSessionFactory1) SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}}
Configuration
MapperScan(basePackages com.remote.Mapper, sqlSessionTemplateRef sqlSessionTemplate2)
public class MybatisRemoteConfig {BeanConfigurationProperties(prefix spring.datasource.remote)public DataSource dataSource2() {return DataSourceBuilder.create().build();}Beanpublic SqlSessionFactory sqlSessionFactory2(Qualifier(dataSource2) DataSource dataSource) throws Exception {MybatisSqlSessionFactoryBean factoryBean new MybatisSqlSessionFactoryBean();factoryBean.setDataSource(dataSource);// 设置mapper.xml文件的位置factoryBean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(classpath*:mapper2/*.xml));return factoryBean.getObject();}Beanpublic SqlSessionTemplate sqlSessionTemplate2(Qualifier(sqlSessionFactory2) SqlSessionFactory sqlSessionFactory) {return new SqlSessionTemplate(sqlSessionFactory);}
}
2.2 对应的mapper
public interface CourseOneMapper extends BaseMapperCourse {
}public interface CourseTwoMapper extends BaseMapperCourse {/*** 批量插入* param list*/Insert(script INSERT INTO tbl_course (name, teacher) VALUES foreach collectionlist itemitem separator, (#{item.name}, #{item.teacher}) /foreach /script)void batchInsert(Param(list) ListCourse list);
}TableName(tbl_course)
public class Course {TableId(type IdType.AUTO)private Integer id;private String name;private String teacher;public Course() {}public Course(Integer id, String name, String teacher) {this.id id;this.name name;this.teacher teacher;}/*** 获取* return id*/public Integer getId() {return id;}/*** 设置* param id*/public void setId(Integer id) {this.id id;}/*** 获取* return name*/public String getName() {return name;}/*** 设置* param name*/public void setName(String name) {this.name name;}/*** 获取* return teacher*/public String getTeacher() {return teacher;}/*** 设置* param teacher*/public void setTeacher(String teacher) {this.teacher teacher;}Overridepublic String toString() {return Course{id id , name name , teacher teacher };}
}
2.3 定时任务处理
EnableScheduling //开启定时
Component
public class MySchedule {Resourceprivate CourseOneMapper courseOneMapper;Resourceprivate CourseTwoMapper courseTwoMapper;/*** 每隔10秒执行一次*/Scheduled(fixedDelay 1000000)public void test(){//查询到要同步的数据ListCourse coursesOne courseOneMapper.selectList(null);//批量插入courseTwoMapper.batchInsert(coursesOne);}} 总结