springboot-mybatis-多数据源
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-多数据源相关推荐
- 探讨 | SpringBoot + MyBatis 多数据源事物问题
这是小小本周的第二篇,本篇将会着重讲解关于SpringBoot + MyBatis 多数据源的事物的问题. 多数据源 此处模拟创建订单和扣减库存.先创建订单表和库存表 CREATE TABLE `t_ ...
- springboot+mybatis多数据源配置
目录 1.前言 2.多数据源配置 2.1 AbstractRoutingDataSource 2.2.首先maven依赖 2.3 数据源配置 2.4 mybatis配置 2.5 设置数据源的路由ke ...
- springboot(七):springboot+mybatis多数据源最简解决方案
为什么80%的码农都做不了架构师?>>> 说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是 ...
- springboot+mybatis多数据源最简解决方案
说起多数据源,一般都来解决那些问题呢,主从模式或者业务比较复杂需要连接不同的分库来支持业务.我们项目是后者的模式,网上找了很多,大都是根据jpa来做多数据源解决方案,要不就是老的spring多数据源解 ...
- SpringBoot mybatis多数据源配置,记录下我磕磕碰碰的三个月找工作经历
*/ public class DynamicDataSource extends AbstractRoutingDataSource { /** 取得当前使用哪个数据源 @return */ @Ov ...
- SpringBoot Mybatis多数据源配置
参考资料: Spring Boot 2.x基础教程:MyBatis的多数据源配置 目录 一. 配置文件 二. 多数据源配置类 三. 多数据源Mybatis配置 3.1 primary数据源配置 3.2 ...
- 第八章 springboot + mybatis + 多数据源
http://www.cnblogs.com/java-zhao/p/5413845.html 转载于:https://www.cnblogs.com/longshiyVip/p/6123161.ht ...
- SpringBoot+Mybatis配置Druid多数据源
开篇之前,说一句题外话.多数据源和动态数据源的区别. 多数据源,一般用于对接多个业务上独立的数据库(可能异构数据库). 动态数据源,一般用于大型应用对数据切分. 配置参考 如何配置多数据源,网上教程一 ...
- Springboot整合Mybatis多数据源配置
话不多说,直接进入正题.源码地址:https://github.com/SuriYesl/template.git 目录 一.数据库配置文件 二.配置类 主数据源配置类: 次数据源配置类: 三.项目结 ...
- springmvc+mybatis多数据源配置,AOP注解动态切换数据源
springmvc与springboot没多大区别,springboot一个jar包配置几乎包含了所有springmvc,也不需要繁琐的xml配置,springmvc需要配置多种jar包,需要繁琐的x ...
最新文章
- 为什么栈和堆的生长方向不一样
- 再学 GDI+[79]: 区域(8) - Transform - 区域的 Matrix 变换
- mysql 备份文件太大_mysql数据库太大了怎么备份
- 【机器学习基础】一文归纳AI调参炼丹之法
- c语言的输入函数有哪些
- java接收uniapp上传的图片_uni-app 上传图片的坑
- html层次选择器例题,详解强大的jQuery选择器之基本选择器、层次选择器
- matlab做思维导图,如何绘制思维导图?绘制思维导图的基本原则是什么
- iOS扫码识别之后添加震动/播放声音提示、歌词解析并随音乐滚动显示(包含demo源码)
- mysql begin end 定界符_mysql存储过程BEGIN END复合语句用法示例
- Root手机后有什么好处吗?我应该如何Root自己的手机?
- 三角形边长求高的c语言函数公式,三角形边长计算公式
- Mstar 648 平台遥控器/按键包POWER键配置
- uniapp 图片上传
- python3 模拟登录网站
- lae界面开发工具入门之介绍十二--iOS系统如何编译打包?
- peek java linkedlist_Java LinkedList peek()方法
- iphone 日历 灰色_将iPhone假期日历更改为本地日历
- Python 四舍六入五成双
- web课程设计-照片记录网站(Flask)【web项目】
热门文章
- java 语言转 c 命令_求助大神!!!JAVA转换成C语言
- element引入的组件大小高度不对_ElementUI 在 按需引入时定义 default size?
- quilleditor 字体大小设置_quill-editor如何更改字体配置?
- 2018CCPC网络赛
- vs点击方法跳不到对于的地方_迷你世界:大神玩花式跑酷有多简单?老玩家教你,轻松学会百段跳...
- Unity3D基础6:灯光组件
- bzoj 4237: 稻草人(CDQ分治+单调栈+二分)
- NYOJ 81:炮兵阵地(状压DP)
- C++ STL 函数partial_sum的正确使用方法
- jquery中的class函数addClass,removeClass,toggle,hasClass