第一步:
排除数据源的自动配置类:

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class})

第二步:
定义好两个数据源的配置文件

#mysql数据库配置
mysql.spring.datasource.jdbc-url =jdbc:mysql://localhost/ts?characterEncoding=utf8&useSSL=true&serverTimezone=GMT%2b8
mysql.spring.datasource.username=root
mysql.spring.datasource.password=root #sqlite数据库的配置
sqlite.spring.datasource.url = jdbc:sqlite:C:/Users/haonan/Desktop/i-workspace/ss/src/main/resources/idatasrv.db
sqlite.spring.datasource.driver-class-name = org.sqlite.JDBC
sqlite.spring.datasource.username =
sqlite.spring.datasource.password = #mybatis
mybatis.configuration.map-underscore-to-camel-case=true
logging.level.com.tl.ss.mapper=debug

第三步:
定义数据源Bean,注意配置文件的key要与数据源实例的属性一一对应,否则,肯定失败

@Bean(name = "sqliteDataSource")
@Qualifier(value = "sqliteDataSource")
@ConfigurationProperties(prefix = "sqlite.spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().type(SQLiteDataSource.class).build();
} @Bean(name = "mysqlDataSource")
@Qualifier(value = "mysqlDataSource")
@ConfigurationProperties(prefix = "mysql.spring.datasource")
public DataSource mysqlDataSource() {
return DataSourceBuilder.create().build();
}

第四步:
定义执行sql或者获取mapper的sqlSessionTemplate/或者sqlSessionFactory
mybatis的基本原理是通过sqlSession去执行sql语句操作数据库,或者通过sqlSession获取mapper来操作数据库[个人理解,可能不对]另外,模板构造一般需要Factory实例。
MySql使用:sqlSessionTemplate方式
Sqlite使用:sqlSessionFactory方式

代码1MySql:

@Configuration
@MapperScan(basePackages = {"com.tl.ss.mapper.mysql"}, sqlSessionTemplateRef = "mysqlSqlSessionTemplate")
public class MysqlSqlSessionTemplateConfig { @Bean(name = "mysqlSqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("mysqlDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
sessionFactoryBean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath*:mapper/mysql/*.xml"));
return sessionFactoryBean.getObject();
} @Bean(name = "mysqlSqlSessionTemplate")
public SqlSessionTemplate testSqlSessionTemplate(
@Qualifier("mysqlSqlSessionFactory") SqlSessionFactory sqlSessionFactory) throws Exception {
return new SqlSessionTemplate(sqlSessionFactory);
}
}

代码2Sqlite:

@Configuration
@MapperScan(basePackages = {"com.tl.ss.mapper.sqlite"}, sqlSessionFactoryRef = "sqliteSqlSessionFactory")
public class SqliteSqlSessionFactoryConfig { @Bean(name = "sqliteSqlSessionFactory")
public SqlSessionFactory testSqlSessionFactory(@Qualifier("sqliteDataSource") DataSource dataSource)
throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver()
.getResources("classpath*:mapper/sqlite/*.xml"));
return bean.getObject();
} }

第五步:
通过工具生成代码,可以开始干了。

其他:
代码示例:

补充:

org.apache.ibatis.session.Configuration conf = new org.apache.ibatis.session.Configuration();
conf.setMapUnderscoreToCamelCase(true);
把这个conf设置到sqlSessionFactoryBean实例,开启驼峰转换,当然这个方式并不优雅。

SpringBoo#Mybatis多个数据源配置,Sqlite&Mysql的更多相关文章

  1. spring boot +mybatis+druid 多数据源配置

    因为我的工程需要在两个数据库中操作数据,所以要配置两个数据库,我这里没有数据源没有什么主从之分,只是配合多数据源必须要指定一个主数据源,所以我就把 操作相对要对的那个数据库设置为主数据(dataBas ...

  2. spring boot + druid + mybatis + atomikos 多数据源配置 并支持分布式事务

    文章目录 一.综述 1.1 项目说明 1.2 项目结构 二.配置多数据源并支持分布式事务 2.1 导入基本依赖 2.2 在yml中配置多数据源信息 2.3 进行多数据源的配置 三.整合结果测试 3.1 ...

  3. Mybatis+Druid多数据源配置

    在日常开发中我们可能会用到多数据源开发,什么是多数据源? 简单来讲的话,就是一个项目连接多个数据库.当然只是可能会用到,我暂时没见过应用场景,但是还是了解学习一下 此项目可以基于上一个简单集成项目进行 ...

  4. Spring Boot 2.x基础教程:MyBatis的多数据源配置

    前两天,我们已经介绍了关于JdbcTemplate的多数据源配置以及Spring Data JPA的多数据源配置,接下来具体说说使用MyBatis时候的多数据源场景该如何配置. 添加多数据源的配置 先 ...

  5. jetty服务器数据源配置JNDI-Oracle,MySQL,SQLServer,DB2等 (转)

    下载jetty 下载jetty服务器(8.1.0.RC2),解压到任意目录下 http://dist.codehaus.org/jetty/jetty-hightide-8.1.0/jetty-hig ...

  6. 基于 Spring + Atomikos + Mybatis的多数据源配置(含有BaseDao,BaseService)

    1.spring配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns=" ...

  7. spring,mybatis,多数据源配置

    spring.xml配置 <!-- 对数据源进行事务管理 --> <bean id="transactionManager" class="org.sp ...

  8. mybatis pagehelper多数据源配置的坑

    我用spring boot配置了2个数据源的工程用来同步不同库的数据,发现如果配置成如下格式报错 #分页配置pagehelper: helper-dialect: mysql reasonable: ...

  9. spring mybatis 多个数据源配置

    mybatis生成器:http://blog.csdn.net/tolcf/article/details/50835165 通过命令生成:java -jar mybatis-generator-co ...

随机推荐

  1. 设计模式01 创建型模式 - 原型模式(Protype Pattern)

    参考 1. 设计模式:原型模式 | 博客园 2. Java clone深拷贝.浅拷贝 | CSDN 3. Cloneable接口和Object的clone()方法 | 博客园 原型模式(Prototy ...

  2. js 常用字符正则匹配

    写代码时需要js验证密码,百度到的验证方法,图方便保存收藏,如感兴趣请移步原博主博文!http://blog.csdn.net/x_i_y_u_e/article/details/47730135 1 ...

  3. missing required architecture x86_64 in file

    ios错误ignoring file xxx missing required architecture x86_64 in file   错误ignoring file xxx missing re ...

  4. 使用win32com操作woord的方法记录

    CSDN博客平台中有众多的 win32com 库操作word 的说明,对于通用的内容将一笔带过,主要介绍目前看来独一无二的内容. import win32com from win32com.clien ...

  5. Java基础知识笔记第七章:内部类和异常类

    内部类 /* *Java支持在一个类中定义另一个类,这样的类称为内部类,而包含内部类的类称为内部类的外嵌类 */ 重要关系: /* *1.内部类的外嵌类在内部类中仍然有效,内部类的方法也可以外嵌类的方 ...

  6. day5-1继承

    继承: Constructor属性和prototype属性的关系: 创建了自定义的构造函数之后,其原型对象默认会取得constructor属性:当调用构造函数创建一个新实例后,该实例的内部将包含一个指 ...

  7. Spring注解@Qualifier、@Autowired、@Primary

    @Qualifier 1.当一个接口有多个实现类,且均已注入到Spring容器中了,使用@AutoWired是byType的,而这些实现类类型都相同,此时就需要使用@Qualifier明确指定使用那个 ...

  8. Codeforces Round #581 (Div. 2)D(思维,构造,最长非递减01串)

    #define HAVE_STRUCT_TIMESPEC#include<bits/stdc++.h>using namespace std;char s[100007];int main ...

  9. Python语法速查: 20. 线程与并发

    返回目录 本篇索引 (1)线程基本概念 (2)threading模块 (3)线程间同步原语资源 (4)queue (1)线程基本概念 当应用程序需要并发执行多个任务时,可以使用线程.多个线程(thre ...

  10. 「HNOI2003」消防局的设立

    题目 [内存限制:$256 MiB$][时间限制:$1000 ms$] [标准输入输出][题目类型:传统][评测方式:文本比较] 题目描述 2020 年,人类在火星上建立了一个庞大的基地群,总共有 $ ...