SpringBoot項目配置postgresql數(shù)據(jù)庫完整步驟(配置多數(shù)據(jù)源)
pg庫也是常用的數(shù)據(jù)庫之一,有些剛開始接觸開發(fā)的老師可能不熟,這里簡單介紹一下,總體使用方法和mysql類似,所以這里只講配置方法
pom文件導(dǎo)入依賴
<dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> </dependency> <dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.18</version> </dependency>
yml文件配置(多數(shù)據(jù)源):
spring: datasource: bd3: jdbc-url: jdbc:postgresql://XXX.XXX.XX.XXX:5432/test1?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true username: XXX password: XXX driver-class-name: org.postgresql.Driver type: com.zaxxer.hikari.HikariDataSource hikari: minimum-idle: 3 auto-commit: true idle-timeout: 10000 pool-name: DatebookHikariCP max-lifetime: 1800000 connection-timeout: 30000 timed: jdbc-url: jdbc:postgresql://XXX.XXX.XX.XXX:5432/test2?serverTimezone=Asia/Shanghai&useUnicode=true&characterEncoding=utf8&characterSetResults=utf8&useSSL=false&allowMultiQueries=true username: XXX password: XXX driver-class-name: org.postgresql.Driver type: com.zaxxer.hikari.HikariDataSource hikari: minimum-idle: 3 auto-commit: true idle-timeout: 10000 pool-name: DatebookHikariCP max-lifetime: 1800000 connection-timeout: 30000
這個地方test1是數(shù)據(jù)庫1,test2是數(shù)據(jù)庫2,yml文件一定要主要好格式,建議用properties
下面是有關(guān)于多數(shù)據(jù)源的配置
文件夾格式,這里直接放貼圖
不同數(shù)據(jù)源的dao層要放到對應(yīng)文件夾下
下面是數(shù)據(jù)源的配置文件
MyBaitsSqlSessionFactory配置文件
package com.XXX.XXX.datasource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionFactoryBean; import org.mybatis.spring.boot.autoconfigure.SpringBootVFS; import org.springframework.core.io.support.PathMatchingResourcePatternResolver; import javax.sql.DataSource; public class MyBaitsSqlSessionFactory { private MyBaitsSqlSessionFactory() { } private static final MyBaitsSqlSessionFactory onlyOne = new MyBaitsSqlSessionFactory(); public static MyBaitsSqlSessionFactory getInstance() { return onlyOne; } public SqlSessionFactory sessionFactory(DataSource dataSource, String mapper_location, String type_aliases_package, boolean mapUnderscoreToCamelCase) throws Exception { SqlSessionFactoryBean bean = new SqlSessionFactoryBean(); bean.setDataSource(dataSource); bean.setVfs(SpringBootVFS.class); //mybatis掃描xml所在位置 bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(mapper_location)); //實體類位置 bean.setTypeAliasesPackage(type_aliases_package); //mybatis配置 org.apache.ibatis.session.Configuration configuration = new org.apache.ibatis.session.Configuration(); configuration.setMapUnderscoreToCamelCase(mapUnderscoreToCamelCase); bean.setConfiguration(configuration); return bean.getObject(); } }
Bd3Config配置文件
package com.XXX.XXX.datasource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @SpringBootConfiguration @MapperScan(basePackages = "com.XXX.XXX.dao.bd3", sqlSessionFactoryRef = "bd3SessionFactory", sqlSessionTemplateRef = "bd3SqlSessionTemplate") public class Bd3Config { //@Value("${mybatis.mapper-locations}") private String mapper_location = "classpath*:/mapper/bd3/**/*.xml"; @Value("${mybatis.type-aliases-package}") private String type_aliases_package; @Value("${mybatis.configuration.map-underscore-to-camel-case}") private boolean mapUnderscoreToCamelCase; /** * 初始化連接池 * * @return DataSource */ @Bean(name = "bd3") @Primary @ConfigurationProperties(prefix = "spring.datasource.bd3") public DataSource bd3DataSource() { return DataSourceBuilder.create().build(); } /** * 構(gòu)建 SqlSessionFactory * * @return SqlSessionFactory */ @Bean(name = "bd3SessionFactory") @Primary public SqlSessionFactory bd3SessionFactory() throws Exception { MyBaitsSqlSessionFactory myBatisFactory = MyBaitsSqlSessionFactory.getInstance(); return myBatisFactory.sessionFactory(bd3DataSource(), mapper_location, type_aliases_package, mapUnderscoreToCamelCase); } /* * 配置事物 * * @return DataSourceTransactionManager */ @Bean("bd3TransactionManager") @Primary public DataSourceTransactionManager TransactionManager() { return new DataSourceTransactionManager(bd3DataSource()); } /** * 構(gòu)建 SqlSessionTemplate * * @return SqlSessionTemplate */ @Bean(name = "bd3SqlSessionTemplate") @Primary public SqlSessionTemplate sqlSessionTemplate() throws Exception { return new SqlSessionTemplate(bd3SessionFactory()); } }
TimedConfig配置文件
package com.XXX.XXX.datasource; import org.apache.ibatis.session.SqlSessionFactory; import org.mybatis.spring.SqlSessionTemplate; import org.mybatis.spring.annotation.MapperScan; import org.springframework.beans.factory.annotation.Value; import org.springframework.boot.SpringBootConfiguration; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.boot.jdbc.DataSourceBuilder; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Primary; import org.springframework.jdbc.datasource.DataSourceTransactionManager; import javax.sql.DataSource; @SpringBootConfiguration @MapperScan(basePackages = "com.XX.XXX.dao.timed", sqlSessionFactoryRef = "timedSessionFactory", sqlSessionTemplateRef = "timedSqlSessionTemplate") public class TimedConfig { //@Value("${mybatis.mapper-locations}") private String mapper_location = "classpath*:/mapper/timed/**/*.xml"; @Value("${mybatis.type-aliases-package}") private String type_aliases_package; @Value("${mybatis.configuration.map-underscore-to-camel-case}") private boolean mapUnderscoreToCamelCase; /** * 初始化連接池 * * @return DataSource */ @Bean(name = "timed") @ConfigurationProperties(prefix = "spring.datasource.timed") public DataSource timedDataSource() { return DataSourceBuilder.create().build(); } /** * 構(gòu)建 SqlSessionFactory * * @return SqlSessionFactory */ @Bean(name = "timedSessionFactory") public SqlSessionFactory timedSessionFactory() throws Exception { MyBaitsSqlSessionFactory myBatisFactory = MyBaitsSqlSessionFactory.getInstance(); return myBatisFactory.sessionFactory(timedDataSource(), mapper_location, type_aliases_package, mapUnderscoreToCamelCase); } /* * 配置事物 * * @return DataSourceTransactionManager */ @Bean("timedTransactionManager") public DataSourceTransactionManager TransactionManager() { return new DataSourceTransactionManager(timedDataSource()); } /** * 構(gòu)建 SqlSessionTemplate * * @return SqlSessionTemplate */ @Bean(name = "timedSqlSessionTemplate") public SqlSessionTemplate sqlSessionTemplate() throws Exception { return new SqlSessionTemplate(timedSessionFactory()); } }
然后就可以正常使用了,希望大家技術(shù)越來越好!
總結(jié)
到此這篇關(guān)于SpringBoot項目配置postgresql數(shù)據(jù)庫(配置多數(shù)據(jù)源)的文章就介紹到這了,更多相關(guān)SpringBoot配置postgresql數(shù)據(jù)庫內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot3集成PostgreSQL的詳細過程
- mybatis+springboot發(fā)布postgresql數(shù)據(jù)的實現(xiàn)
- SpringBoot集成PostgreSQL并設(shè)置最大連接數(shù)
- SpringBoot整合PostgreSQL的示例代碼
- springboot+springJdbc+postgresql 實現(xiàn)多數(shù)據(jù)源的配置
- SpringBoot連接使用PostgreSql數(shù)據(jù)庫的方法
- Springboot中MyBatisplus使用IPage和Page分頁的實例代碼
- SpringBoot+MybatisPlus+代碼生成器整合示例
- springboot集成mybatisplus實例詳解
- SpringBoot連接PostgreSQL+MybatisPlus入門案例(代碼詳解)
相關(guān)文章
SpringBoot yaml語法與JRS303校驗超詳細講解
YAML 是 “YAML Ain’t Markup Language”(YAML 不是一種標(biāo)記語言)的遞歸縮寫。在開發(fā)的這種語言時,YAML 的意思其實是:“Yet Another Markup Language”(仍是一種標(biāo)記語言),本文給大家介紹的非常詳細,需要的朋友可以參考下2022-10-10java GUI實現(xiàn)學(xué)生圖書管理簡單實例
這篇文章主要為大家詳細介紹了java GUI實現(xiàn)學(xué)生圖書管理簡單示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下2018-01-01Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能對比
本文主要介紹了Fluent Mybatis,原生Mybatis,Mybatis Plus三者功能對比,分享給大家,具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-08-08基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題
這篇文章主要介紹了基于多網(wǎng)卡環(huán)境下Eureka服務(wù)注冊IP的選擇問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-03-03Java 使用POI生成帶聯(lián)動下拉框的excel表格實例代碼
本文通過實例代碼給大家分享Java 使用POI生成帶聯(lián)動下拉框的excel表格,代碼簡單易懂,非常不錯,具有參考借鑒價值,需要的朋友參考下吧2017-09-09Java中ArrayList在foreach里remove的問題詳析
這篇文章主要給大家介紹了關(guān)于Java中ArrayList在foreach里remove問題的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起看看吧2018-09-09