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

@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. [python]python中的一些包以及他们的基本用处和安装

    pika可以用来连接rabbitmqpip install pika -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com ...

  2. 集成PHP应用和SOLR

    集成 PHP 应用和 Solr 搜索引擎 您的评价:          收藏该经验       你为什么需要搜索引擎?单纯数据库不够用?如果你只是创建小网站,数据库就够了.但当你创建中性或大型应用的时 ...

  3. Mysql将2张字段不同的表拼接起来

    select id,mobile,realname as name,weixin as message_note,address_des as address,create_time,cateid f ...

  4. div display 常用属性

    none:元素不被显示. block:元素将显示为块级元素,此元素前后会带有换行符. inline:行内元素(即一个挨着一个,都在同一行按从左至右的顺序显示,不单独占一行). 参考: http://w ...

  5. Python学习笔记005

    if if     ==    : xxxx elif     : xxxx else: xxxx 输入字符串 input() 字符串转数值 int() 数值转字符串 str() 输出 print() ...

  6. Linux命令:netstat命令

    netstat功能:显示网络连接情况 netstat功能选项 -t:tcp协议的连接 -u:udp协议的链接 -l:监听状态的连接 -a:所有状态的连接 -p:连接相关的进程 -n:数字格式显示 -r ...

  7. 【PAT甲级】1021 Deepest Root (25 分)(暴力,DFS)

    题意: 输入一个正整数N(N<=10000),然后输入N-1条边,求使得这棵树深度最大的根节点,递增序输出.如果不是一棵树,输出这张图有几个部分. trick: 时间比较充裕数据可能也不是很极限 ...

  8. 四、linux基础-系统目录_安装_相关命令_调度

    4 系统目录-安装-版本4.1系统目录Linux的文件系统是采用级层式的树状目录结构,在此结构中的最上层是根目录“/”,然后在此目录下再创建其他的目录. 在装完Linux系统以后会自动生成一下等目录, ...

  9. 「SDOI2013」森林

    「SDOI2013」森林 传送门 树上主席树 + 启发式合并 锻炼码力,没什么好说的. 细节见代码. 参考代码: #include <algorithm> #include <cst ...

  10. 「Violet」蒲公英

    「Violet」蒲公英 传送门 区间众数,强制在线. 分块经典题. 像这题一样预处理,然后就直接爆搞,复杂度 \(O(n \sqrt n)\) 参考代码: #include <algorithm ...