日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

SpringBoot 配置多数据源(Sql Server、MySql)

發布時間:2023/12/10 javascript 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot 配置多数据源(Sql Server、MySql) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

創建SpringBoot項目就不說了。(直接使用IDEA創建就好了)

整個目錄結構如圖:(不用管圖中報錯,項目是在另一臺電腦上寫的。報錯是沒有jar包,因為網絡比較慢。)

1、主要pom.xml

<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- Spring Boot Test 依賴 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- Spring Boot Mybatis 依賴 --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.2.0</version></dependency> <!-- MySQL 連接驅動依賴 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>${mysql-connector}</version></dependency> <!-- Druid 數據連接池依賴 --><dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.0.18</version></dependency><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>3.8.1</version><scope>test</scope></dependency><dependency><groupId>com.microsoft.sqlserver</groupId><artifactId>mssql-jdbc</artifactId><version>7.0.0.jre8</version></dependency></dependencies>

2、在配置文件中配置多數據源application.properties

## 默認的數據源 master.datasource.url=jdbc:mysql://localhost:3306/springbootdb?useUnicode=true&characterEncoding=utf8&allowMultiQueries=true master.datasource.username=root master.datasource.password=admin master.datasource.driverClassName=com.mysql.jdbc.Driver ## 另一個的數據源 cluster.datasource.url=jdbc:sqlserver://localhost:1433;DatabaseName=tablename cluster.datasource.username=sa cluster.datasource.password=admin cluster.datasource.driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver

?我這配置SqlServer、MySql,如果需要連接MySql中的兩個數據庫。請自行更更改配置,并刪除pom依賴。

3、配置mapper接口的數據源

MasterDataSourceConfig.java

package com.wzq.datasource2.config;import javax.sql.DataSource;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;@Configuration //掃描 Mapper 接口并容器管理 @MapperScan(basePackages = {"com.wzq.datasource2.mapper.master"}, sqlSessionFactoryRef = "masterSqlSessionFactory") public class MasterDataSourceConfig {// 精確到 master 目錄,以便跟其他數據源隔離static final String PACKAGE = "com.wzq.datasource2.mapper.master";static final String MAPPER_LOCATION = "classpath:mapper/master/*.xml";@Value("${master.datasource.url}")private String url;@Value("${master.datasource.username}")private String user;@Value("${master.datasource.password}")private String password;@Value("${master.datasource.driverClassName}")private String driverClass;@Primary@Bean(name = "masterDataSource")public DataSource masterDataSource() {DruidDataSource dataSource = new DruidDataSource();dataSource.setDriverClassName(driverClass);dataSource.setUrl(url);dataSource.setUsername(user);dataSource.setPassword(password);return dataSource;}@Bean(name = "masterTransactionManager")@Primarypublic DataSourceTransactionManager masterTransactionManager() {return new DataSourceTransactionManager(masterDataSource());}@Bean(name = "masterSqlSessionFactory")@Primarypublic SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource masterDataSource)throws Exception {final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();sessionFactory.setDataSource(masterDataSource);sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/master/*.xml"));return sessionFactory.getObject();} }

4、創建entity實體類

public class StuT {private static final long serialVersionUID = 1L;private Integer id;private String name;//get/set}public class Stu {private static final long serialVersionUID = 1L;private Integer id;private String name;//get/set } ClusterDataSourceConfig.java package com.wzq.datasource2.config;import javax.sql.DataSource; 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.core.io.support.PathMatchingResourcePatternResolver; import org.springframework.jdbc.datasource.DataSourceTransactionManager;import com.alibaba.druid.pool.DruidDataSource;@Configuration //掃描 Mapper 接口并容器管理 @MapperScan(basePackages = {"com.wzq.datasource2.mapper.cluster"}, sqlSessionFactoryRef = "clusterSqlSessionFactory") public class ClusterDataSourceConfig {// 精確到 cluster 目錄,以便跟其他數據源隔離static final String PACKAGE = "com.wzq.datasource2.mapper.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("classpath:mapper/cluster/*.xml"));return sessionFactory.getObject();} }

請根據實體類自行創建表?

5、編寫mapper層

?

?

6、Service省略,目錄結構如下:

?7、controller層

package com.wzq.datasource2.controller;import com.wzq.datasource2.entity.cluster.StuT; import com.wzq.datasource2.entity.master.Stu; import com.wzq.datasource2.service.cluster.StuTService; import com.wzq.datasource2.service.master.StuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody;import java.util.List;@Controller public class StuController {@Autowired@Qualifier(value = "stuServiceImpl")private StuService stuService;@Autowired@Qualifier(value = "stuTServiceImpl")private StuTService stuTService;@RequestMapping("/list")@ResponseBodypublic List<Stu> getAllStu(){return stuService.getAllStu();}@RequestMapping("/list2")@ResponseBodypublic List<StuT> getAllStuT(){return stuTService.getAllStuT();}}

總結:

1、配置多數據的目的是因為新項目需要用到老項目中的數據,而數據存放在兩個不同的數據庫當中,配置多數據源能很好的解決這一方面。還有一些公司進行了分庫的操作,就比如一個制作增刪改,一個制作查詢。

2、?可能是我在配置數據源的時候使用了master或cluster,亦或者在配置mapper接口的數據源時指定的mastter或cluster,所以需要在mapperwen文件下創建master和cluster文件,以此來區分數據源的使用。

PS:報紅是因為沒有jar包!報紅是因為沒有jar包!報紅是因為沒有jar包!

GitHub網址:https://github.com/qz596766829/WzqRepository.git?(datasoutrce2項目)

總結

以上是生活随笔為你收集整理的SpringBoot 配置多数据源(Sql Server、MySql)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。