1、依赖pom.xml

<dependencies><!-- web --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- test --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!--启动时启动内置tomcat --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><scope>provided</scope></dependency><!--对Jsp支持 --><dependency><groupId>org.apache.tomcat.embed</groupId><artifactId>tomcat-embed-jasper</artifactId></dependency><!-- 支持jstl --><dependency><groupId>javax.servlet</groupId><artifactId>jstl</artifactId></dependency><!-- fastjson --><dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>1.2.46</version></dependency><!-- MyBatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.1.1</version></dependency><!-- MySql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.22</version></dependency><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.6</version></dependency>
</dependencies>

2、配置数据库连接信息application.properties

#datasource:user
spring.datasource.user.url=jdbc:mysql://localhost:3306/licy?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
spring.datasource.user.username=root
spring.datasource.user.password=root
spring.datasource.user.driver=com.mysql.jdbc.Driver#datasource:task
spring.datasource.task.url=jdbc:mysql://localhost:3306/qding_hk_user?useUnicode=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true
spring.datasource.task.username=root
spring.datasource.task.password=root
spring.datasource.task.driver=com.mysql.jdbc.Driver

3、创建实体src/main/java/pom/domain/Task.java、src/main/java/pom/domain/User.java

@Data
@NoArgsConstructor
@AllArgsConstructor
public class Task {private int id;private String name;private String cron;private String className;private String methodName;private String isDeleted;}

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {private int id;private String name;
}

4、创建dao类src/main/java/pom/dao/task/TaskDao.java、src/main/java/pom/dao/user/UserDao.java

public interface TaskDao {Task getTaskById(Task task);
}

public interface UserDao {User getUserById(User user);
} 

5、创建数据库文件src/main/resources/mapper/task/TaskMapper.xml、resources/mapper/user/UserMapper.xml

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="pom.dao.task.TaskDao"><select id="getTaskById" resultType="pom.domain.Task"> SELECT * FROM task WHERE deleted = 0 and ID = #{id}</select>
</mapper>

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE mapper PUBLIC "-//ibatis.apache.org//DTD Mapper 3.0//EN" "http://ibatis.apache.org/dtd/ibatis-3-mapper.dtd">
<mapper namespace="pom.dao.user.UserDao"><select id="getUserById" parameterType="pom.domain.User"resultType="pom.domain.User"> SELECT * FROM user WHERE ID = #{id}</select>
</mapper>

6、创建配置文件src/main/java/pom/config/TaskMapperConfig.java、src/main/java/pom/config/UserMapperConfig.java

@Configuration
@MapperScan(basePackages = { "pom.dao.task" }, sqlSessionFactoryRef = "taskSqlSessionFactory")
public class TaskMapperConfig {@Value("${spring.datasource.task.url}")private String url;@Value("${spring.datasource.task.username}")private String user;@Value("${spring.datasource.task.password}")private String password;@Value("${spring.datasource.task.driver}")private String driverClass;@Bean(name = "taskDataSource")@Primarypublic DataSource masterDataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driverClass);dataSource.setUrl(url);dataSource.setUsername(user);dataSource.setPassword(password);return dataSource;}@Bean(name = "taskTransactionManager")@Primarypublic DataSourceTransactionManager masterTransactionManager() {return new DataSourceTransactionManager(masterDataSource());}@Bean(name = "taskSqlSessionFactory")@Primarypublic SqlSessionFactory masterSqlSessionFactory(@Qualifier("taskDataSource") DataSource masterDataSource)throws Exception {final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();sessionFactory.setDataSource(masterDataSource);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/task/TaskMapper.xml"));return sessionFactory.getObject();}
}

@Configuration
@MapperScan(basePackages = { "pom.dao.user" }, sqlSessionFactoryRef = "userSqlSessionFactory")
public class UserMapperConfig {@Value("${spring.datasource.user.url}")private String url;@Value("${spring.datasource.user.username}")private String user;@Value("${spring.datasource.user.password}")private String password;@Value("${spring.datasource.user.driver}")private String driverClass;@Bean(name = "userDataSource")public DataSource master2DataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driverClass);dataSource.setUrl(url);dataSource.setUsername(user);dataSource.setPassword(password);return dataSource;}@Bean(name = "userTransactionManager")public DataSourceTransactionManager master2TransactionManager() {return new DataSourceTransactionManager(master2DataSource());}@Bean(name = "userSqlSessionFactory")public SqlSessionFactory clusterSqlSessionFactory(@Qualifier("userDataSource") DataSource master2DataSource)throws Exception {final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();sessionFactory.setDataSource(master2DataSource);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/user/UserMapper.xml"));return sessionFactory.getObject();}}

  

  

  

 

  

  

  

转载于:https://www.cnblogs.com/lichangyunnianxue/p/9798114.html

springboot-mybatis-多数据源相关推荐

  1. 探讨 | SpringBoot + MyBatis 多数据源事物问题

    这是小小本周的第二篇,本篇将会着重讲解关于SpringBoot + MyBatis 多数据源的事物的问题. 多数据源 此处模拟创建订单和扣减库存.先创建订单表和库存表 CREATE TABLE `t_ ...

  2. springboot+mybatis多数据源配置

    目录 1.前言 2.多数据源配置 2.1  AbstractRoutingDataSource 2.2.首先maven依赖 2.3 数据源配置 2.4 mybatis配置 2.5 设置数据源的路由ke ...

  3. springboot(七):springboot+mybatis多数据源最简解决方案

    为什么80%的码农都做不了架构师?>>>    说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是 ...

  4. springboot+mybatis多数据源最简解决方案

    说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解 ...

  5. SpringBoot mybatis多数据源配置,记录下我磕磕碰碰的三个月找工作经历

    */ public class DynamicDataSource extends AbstractRoutingDataSource { /** 取得当前使用哪个数据源 @return */ @Ov ...

  6. SpringBoot Mybatis多数据源配置

    参考资料: Spring Boot 2.x基础教程:MyBatis的多数据源配置 目录 一. 配置文件 二. 多数据源配置类 三. 多数据源Mybatis配置 3.1 primary数据源配置 3.2 ...

  7. 第八章 springboot + mybatis + 多数据源

    http://www.cnblogs.com/java-zhao/p/5413845.html 转载于:https://www.cnblogs.com/longshiyVip/p/6123161.ht ...

  8. SpringBoot+Mybatis配置Druid多数据源

    开篇之前,说一句题外话.多数据源和动态数据源的区别. 多数据源,一般用于对接多个业务上独立的数据库(可能异构数据库). 动态数据源,一般用于大型应用对数据切分. 配置参考 如何配置多数据源,网上教程一 ...

  9. Springboot整合Mybatis多数据源配置

    话不多说,直接进入正题.源码地址:https://github.com/SuriYesl/template.git 目录 一.数据库配置文件 二.配置类 主数据源配置类: 次数据源配置类: 三.项目结 ...

  10. springmvc+mybatis多数据源配置,AOP注解动态切换数据源

    springmvc与springboot没多大区别,springboot一个jar包配置几乎包含了所有springmvc,也不需要繁琐的xml配置,springmvc需要配置多种jar包,需要繁琐的x ...

最新文章

  1. 为什么栈和堆的生长方向不一样
  2. 再学 GDI+[79]: 区域(8) - Transform - 区域的 Matrix 变换
  3. mysql 备份文件太大_mysql数据库太大了怎么备份
  4. 【机器学习基础】一文归纳AI调参炼丹之法
  5. c语言的输入函数有哪些
  6. java接收uniapp上传的图片_uni-app 上传图片的坑
  7. html层次选择器例题,详解强大的jQuery选择器之基本选择器、层次选择器
  8. matlab做思维导图,如何绘制思维导图?绘制思维导图的基本原则是什么
  9. iOS扫码识别之后添加震动/播放声音提示、歌词解析并随音乐滚动显示(包含demo源码)
  10. mysql begin end 定界符_mysql存储过程BEGIN END复合语句用法示例
  11. Root手机后有什么好处吗?我应该如何Root自己的手机?
  12. 三角形边长求高的c语言函数公式,三角形边长计算公式
  13. Mstar 648 平台遥控器/按键包POWER键配置
  14. uniapp 图片上传
  15. python3 模拟登录网站
  16. lae界面开发工具入门之介绍十二--iOS系统如何编译打包?
  17. peek java linkedlist_Java LinkedList peek()方法
  18. iphone 日历 灰色_将iPhone假期日历更改为本地日历
  19. Python 四舍六入五成双
  20. web课程设计-照片记录网站(Flask)【web项目】

热门文章

  1. java 语言转 c 命令_求助大神!!!JAVA转换成C语言
  2. element引入的组件大小高度不对_ElementUI 在 按需引入时定义 default size?
  3. quilleditor 字体大小设置_quill-editor如何更改字体配置?
  4. 2018CCPC网络赛
  5. vs点击方法跳不到对于的地方_迷你世界:大神玩花式跑酷有多简单?老玩家教你,轻松学会百段跳...
  6. Unity3D基础6:灯光组件
  7. bzoj 4237: 稻草人(CDQ分治+单调栈+二分)
  8. NYOJ 81:炮兵阵地(状压DP)
  9. C++ STL 函数partial_sum的正确使用方法
  10. jquery中的class函数addClass,removeClass,toggle,hasClass