Spring boot集成mybatis的三种方式

一、XML文件

  在pom文件里面引入mybatis和数据库的依赖

  在application.properties中加入数据源配置

  

  其他和ssm配置完全一样

二、注解方式

  同上,只是少了xml文件配置,通过注解的形式配置在mapper文件里

  

  

三、多数据源

  多数据源,可以同时连接多个数据库

  

  创建两个数据源配置文件ClusterDataSourceConfig.java、MasterDataSourceConfig.java

  

package org.spring.springboot.config.ds;

import com.alibaba.druid.pool.DruidDataSource;
import org.apache.ibatis.session.SqlSessionFactory;
import org.mybatis.spring.SqlSessionFactoryBean;
import org.mybatis.spring.annotation.MapperScan;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
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 org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @Configuration
// 扫描 Mapper 接口并容器管理
@MapperScan(basePackages = ClusterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = "clusterSqlSessionFactory")
public class ClusterDataSourceConfig { // 精确到 cluster 目录,以便跟其他数据源隔离
static final String PACKAGE = "org.spring.springboot.dao.cluster";
static final String MAPPER_LOCATION = "classpath:mapper/cluster/*.xml"; @Value("${cluster.datasource.url}")
private String url; @Value("${cluster.datasource.username}")
private String user; @Value("${cluster.datasource.password}")
private String password; @Value("${cluster.datasource.driverClassName}")
private String driverClass; @Bean(name = "clusterDataSource")
public DataSource clusterDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setDriverClassName(driverClass);
dataSource.setUrl(url);
dataSource.setUsername(user);
dataSource.setPassword(password);
return dataSource;
} @Bean(name = "clusterTransactionManager")
public DataSourceTransactionManager clusterTransactionManager() {
return new DataSourceTransactionManager(clusterDataSource());
} @Bean(name = "clusterSqlSessionFactory")
public SqlSessionFactory clusterSqlSessionFactory(@Qualifier("clusterDataSource") DataSource clusterDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(clusterDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources(ClusterDataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
} 这样配置之后,可以就可以同时操作两个数据库了

  

   

 

  

最新文章

  1. javascript中的prototype(原型)认识
  2. 《Linux内核设计与实现》读书笔记 - 目录 (完结)
  3. 关于MySQL redo log,挖些坑,慢慢填
  4. word2010插入奇数页 使奇偶页不同的问题
  5. HDU 1142 A Walk Through the Forest (记忆化搜索 最短路)
  6. Bridging signals---hdu1950(最长上升子序列复杂度n*log(n) )
  7. 移动端material风格日期时间选择器
  8. Java中finalize()
  9. 使用pdb调试python
  10. [转载]浅析Windows安全相关的一些概念
  11. [Java第一个游戏]JFrame文本框下贪吃蛇
  12. 2017最新PHP初级经典面试题目汇总(下篇)
  13. spring加载xml的六种方式
  14. gevent模块学习(四)
  15. Linux系统时钟的更改
  16. Java关于struts2框架
  17. Gradle环境变量的配置
  18. js封装插件
  19. ftps加密服务器
  20. 原生JS 将canvas生成图片

热门文章

  1. get_magic_quotes_gpc() PHP转义的真正含义
  2. Project Euler Problem 7-10001st prime
  3. 【CSS3】loading动画
  4. Python--day69--单表查询之神奇的双下划线
  5. 解决Pycharm中SystemError报错
  6. Pytorch Bi-LSTM + CRF 代码详解
  7. Python 3里,reduce()函数已经被从全局名字空间里移除了,它现在被放置在fucntools模块里
  8. ThinkPHP 模版中的内置标签
  9. 地址中如果含有"+",发给服务器时"+"变成了空格问题解析
  10. JAVA核心知识点--打包 FatJar 方法小结