一、pom依赖
<dependency>
<groupId>org.xerial</groupId>
<artifactId>sqlite-jdbc</artifactId>
<version>3.30.1</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>2.1.2</version>
</dependency>
二、yml配置
spring:
datasource:
driver-class-name: org.sqlite.JDBC
url1: jdbc:sqlite::resource:xxx.db #数据库文件在resources目录下
url2: jdbc:sqlite::resource:xxx.db
url3: jdbc:sqlite::resource:xxx.db
三、启动类
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)// 排除自动数据源配置
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application .class, args);
}
}
四、数据源配置
// 类名和bean name保持唯一性,否则会报bean name重复加载错误
@Configuration @MapperScan(basePackages = {"mapper.java路径"}, sqlSessionTemplateRef = "sqlSessionTemplate1") public class DataSourceConfig1 { @Value("${spring.datasource.url1}") private String url; @Primary @Bean(name = "dataSource1") public DataSource strategyDataSource() throws SQLException { SQLiteDataSource sqLiteDataSource = new SQLiteDataSource(); sqLiteDataSource.setUrl(url); sqLiteDataSource.setDatabaseName("dataSource1"); SQLiteConfig config = new SQLiteConfig(); config.setJournalMode(SQLiteConfig.JournalMode.OFF);// 关日志 config.setSynchronous(SQLiteConfig.SynchronousMode.OFF);// 关刷新 sqLiteDataSource.setConfig(config); return sqLiteDataSource; } @Bean(name = "sqlSessionFactory1") public SqlSessionFactory createSqlSessionFactoryBean(@Qualifier("dataSource1") DataSource dataSource) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); bean.setMapperLocations(resolver.getResources("classpath:mapper.xml路径")); bean.getObject().getConfiguration().setMapUnderscoreToCamelCase(true); return bean.getObject(); } @Bean(name = "sqlSessionTemplate1") public SqlSessionTemplate sqlSessionTemplate(@Qualifier("sqlSessionFactory1") SqlSessionFactory sqlSessionFactory) { return new SqlSessionTemplate(sqlSessionFactory); } }