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

@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. 吴裕雄 Bootstrap 前端框架开发——Bootstrap 显示代码:变量赋值

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  2. 名称空间using namespace std

    写再最前面:摘录于柳神的笔记 虽然C++是一门面向对象语言,但是对于刷算法这件事而言,我们并不需要掌握它⾯向对象的部分-只 需要掌握刷算法的时候需要用到的部分(基本输⼊输出.STL标准模板库. str ...

  3. LaTeX 使用笔记

    实现一个归类样式,如图: 代码: \left\{ \begin{aligned} 监督学习 \left\{ \begin{aligned} 回归 \\ 分类 \end{aligned} \right. ...

  4. Using Watch Mode

    官方文档地址:https://webpack.js.org/guides/development/#using-watch-mode You can instruct webpack to " ...

  5. LTE 网元功能

    E-NodeB : 无线资源管理,无线承载控制.无线接入控制.连接移动性控制.UE的上下行动态资源分配 IP头压缩及用户数据流加密 UE连接期间选择MME 路由用户面数据至S-GW 寻呼消息的组织和发 ...

  6. AtCoder agc007_d Shik and Game

    洛谷题目页面传送门 & AtCoder题目页面传送门 有\(1\)根数轴,Shik初始在位置\(0\).数轴上有\(n\)只小熊,第\(i\)只在位置\(a_i\).Shik每秒可以向左移动\ ...

  7. uniGUI之换肤(17)

    在MainModule里  Design 模式 1]RecallLastTheme 设为True 2]Theme选一个皮肤 总共有 classicgraycrispneptunetritontrito ...

  8. FFmpeg调用c语言SDK实现日志的打印

    日志文件的三大步 // 导入头文件 #include <libavutil/log.h> // 设置日志级别 av_log_set_level(AV_LOG_DEBUG); //DEBUG ...

  9. Flask - 请求扩展,钩子函数(Django的中间件) --> 请求前,中,后,

    例子1. 处理请求之前 @app.before_request 在请求之前,这个被装饰的函数会被执行 用户登录验证代码可以在这里写 @app.before_request def process_re ...

  10. Pycharm设置默认HTML模板

    Pycharm设置默认HTML模板 Bootstrap导入链接 <link href="https://cdn.bootcss.com/twitter-bootstrap/3.4.1/ ...