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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

SpringBoot (八) :Spring Boot多数据源(JdbcTemplate)配置与使用

發(fā)布時間:2023/11/28 生活经验 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SpringBoot (八) :Spring Boot多数据源(JdbcTemplate)配置与使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

什么是JdbcTemplate

為了使 JDBC 更加易于使用,Spring 在 JDBCAPI 上定義了一個抽象層, 以此建立一個JDBC存取框架.
作為 SpringJDBC 框架的核心, JDBC 模板的設(shè)計目的是為不同類型的JDBC操作提供模板方法. 每個模板方法都能控制整個過程,并允許覆蓋過程中的特定任務(wù).通過這種方式,可以在盡可能保留靈活性的情況下,將數(shù)據(jù)庫存取的工作量降到最低.

JdbcTemplate主要提供以下五類方法:
execute方法:可以用于執(zhí)行任何SQL語句,一般用于執(zhí)行DDL語句;
update方法及batchUpdate方法:update方法用于執(zhí)行新增、修改、刪除等語句;batchUpdate方法用于執(zhí)行批處理相關(guān)語句;
query方法及queryForXXX方法:用于執(zhí)行查詢相關(guān)語句;
call方法:用于執(zhí)行存儲過程、函數(shù)相關(guān)語句。

說在前面

之前有整合過SpringBoot+JdbcTemplate和SpringBoot+mybatis,都使用了單數(shù)據(jù)源。在單數(shù)據(jù)源的情況下,Spring Boot的配置非常簡單,只需要在application.properties文件中配置連接參數(shù)即可。但是往往隨著業(yè)務(wù)量發(fā)展,我們通常會進行數(shù)據(jù)庫拆分或是引入其他數(shù)據(jù)庫,從而我們需要配置多個數(shù)據(jù)源,下面基于之前的JdbcTemplate介紹下多數(shù)據(jù)源的配置方式。

項目結(jié)構(gòu)

代碼實現(xiàn)

1、pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.fit</groupId><artifactId>SpringBootJdbcTemplate</artifactId><version>0.0.1-SNAPSHOT</version><!-- SpringBoot父類依賴引用 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>1.5.2.RELEASE</version></parent><dependencies><!-- jdbc--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- mysql--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId><version>5.1.21</version></dependency><!-- SpringBoot web 組件 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>
</project>

2、application.properties文件

#primary
spring.datasource.primary.url=jdbc:mysql://127.0.0.1:3306/mydb
spring.datasource.primary.username=root
spring.datasource.primary.password=root
spring.datasource.primary.driver-class-name=com.mysql.jdbc.Driver#secondary
spring.datasource.secondary.url=jdbc:mysql://127.0.0.1:3306/mydb1
spring.datasource.secondary.username=root
spring.datasource.secondary.password=root
spring.datasource.secondary.driver-class-name=com.mysql.jdbc.Driver

3、DataSourceConfig.java文件

/*** 數(shù)據(jù)源配置* @author zlzhaoe**/
@Configuration
public class DataSourceConfig {@Bean(name = "primaryDataSource")@Qualifier("primaryDataSource")@ConfigurationProperties(prefix="spring.datasource.primary")public DataSource primaryDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "secondaryDataSource")@Qualifier("secondaryDataSource")@Primary@ConfigurationProperties(prefix="spring.datasource.secondary")public DataSource secondaryDataSource() {return DataSourceBuilder.create().build();}@Bean(name = "primaryJdbcTemplate")public JdbcTemplate primaryJdbcTemplate(@Qualifier("primaryDataSource") DataSource dataSource) {return new JdbcTemplate(dataSource);}@Bean(name = "secondaryJdbcTemplate")public JdbcTemplate secondaryJdbcTemplate(@Qualifier("secondaryDataSource") DataSource dataSource) {return new JdbcTemplate(dataSource);}
}

4、com.fit.service層

public interface UserService {public List<Map<String, Object>> primaryUserList();public List<Map<String, Object>> secondaryUserList();
}@Service
public class UserServiceImpl implements UserService {@Autowired@Qualifier("primaryJdbcTemplate")private JdbcTemplate primaryJdbcTemplate;@Autowired@Qualifier("secondaryJdbcTemplate")private JdbcTemplate secondaryJdbcTemplate;public List<Map<String, Object>> primaryUserList() {// TODO Auto-generated method stubString sql = "select * from sys_user";List<Map<String, Object>> userList = primaryJdbcTemplate.queryForList(sql);return userList;}public List<Map<String, Object>> secondaryUserList() {// TODO Auto-generated method stubString sql = "select * from sys_user";List<Map<String, Object>> userList = secondaryJdbcTemplate.queryForList(sql);return userList;}}

5、UserController.java

@Controller
public class UserController {@Resourceprivate UserService userService;@ResponseBody@RequestMapping(value = "primaryUserList")public List<Map<String, Object>> userList() {return userService.primaryUserList();}@ResponseBody@RequestMapping(value = "secondaryUserList")public List<Map<String, Object>> secondaryUserList() {return userService.secondaryUserList();}
}

6、APP.java文件

@SpringBootApplication
public class APP {/*** @param args*/public static void main(String[] args) {// TODO Auto-generated method stubSpringApplication.run(APP.class, args);}
}

源碼下載

總結(jié)

以上是生活随笔為你收集整理的SpringBoot (八) :Spring Boot多数据源(JdbcTemplate)配置与使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。