SpringBoot3集成PostgreSQL

標籤:PostgreSQL.Druid.Mybatis.Plus;

一、簡介

PostgreSQL是一個功能強大的開源數據庫系統,具有可靠性、穩定性、數據一致性等特點,且可以運行在所有主流操作系統上,包括Linux、Unix、Windows等。

通過官方文檔可以找到大量描述如何安裝和使用PostgreSQL的信息。

環境搭建,基於Centos7部署的PostgreSQL-14版本,官方文檔中提供yum安裝的方式,配置的話可以參考源碼倉庫中的其他版本「見文尾」,這裏不贅述。

# 1、RPM倉庫
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# 2、安裝PostgreSQL
sudo yum install -y postgresql14-server

# 3、初始化選項
sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
sudo systemctl enable postgresql-14
sudo systemctl start postgresql-14

# 4、查看版本
psql --version
psql (PostgreSQL) 14.11

二、工程搭建

1、工程結構

2、依賴管理

Druid連接池使用的是1.2.18版本;使用mybatis-plus組件的3.5.3.1版本;PostgreSQL本地環境是14.11版本,這裏依賴包使用42.6.2版本;

<!-- Postgresql -->
<dependency>
    <groupId>org.postgresql</groupId>
    <artifactId>postgresql</artifactId>
    <version>${postgresql.version}</version>
</dependency>
<!-- Druid組件 -->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-3-starter</artifactId>
    <version>${druid-spring-boot.version}</version>
</dependency>
<!-- MybatisPlus組件 -->
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-generator</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>

三、PostgreSQL配置

1、數據庫配置

有關於Druid連接池的可配置參數還有很多,可以參考源碼中的描述或者官方案例,此處只提供部分常見的參數配置;

spring:
  datasource:
    type: com.alibaba.druid.pool.DruidDataSource
    druid:
      # 數據庫
      url: jdbc:postgresql://127.0.0.1:5432/pg-data-14
      username: postgres
      password: postgres
      driver-class-name: org.postgresql.Driver
      # 連接池-初始化大小
      initial-size: 10
      # 連接池-最大連接數
      max-active: 100
      # 最大等待時間
      max-wait: 60000
      # 連接池-最小空閒數
      min-idle: 10
      # 檢測空閒連接
      test-while-idle: true
      # 最小空閒時間
      min-evictable-idle-time-millis: 300000

2、逆向工程類

逆向工程新版本的API語法和之前有變化,但是整體的邏輯還是差不多。其它的SQL腳本和基礎案例,以及相關單元測試不再贅述,參考源碼倉庫即可。

public class GeneratorMybatisPlus {

    private static final String jdbcUrl = "數據庫地址";
    private static final String outDir = "存放路徑";

    public static void main(String[] args) {
        // 數據源配置
        DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder
                (jdbcUrl,"postgres","postgres")
                .build();

        // 代碼生成器
        AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfig);

        // 全局配置
        GlobalConfig globalConfig = new GlobalConfig.Builder()
                .outputDir(outDir).disableOpenDir().author("知了一笑") // .enableSwagger()
                .build();

        // 分包配置
        PackageConfig packageConfig = new PackageConfig.Builder()
                .parent("com.boot.pgsql.generator").controller("controller")
                .service("dao").serviceImpl("dao.impl").mapper("mapper").entity("entity")
                .build();

        // 策略配置
        StrategyConfig strategyConfig = new StrategyConfig.Builder()
                .addInclude("user_info","sys_user")
                .addTablePrefix("")
                .entityBuilder().enableLombok()
                .naming(NamingStrategy.underline_to_camel)
                .columnNaming(NamingStrategy.underline_to_camel)
                .controllerBuilder().formatFileName("%sController")
                .entityBuilder().formatFileName("%s")
                .serviceBuilder().formatServiceFileName("%sDao").formatServiceImplFileName("%sDaoImpl")
                .mapperBuilder().formatMapperFileName("%sMapper").formatXmlFileName("%sMapper")
                .build();

        autoGenerator.global(globalConfig);
        autoGenerator.packageInfo(packageConfig);
        autoGenerator.strategy(strategyConfig);

        // 執行
        autoGenerator.execute();
    }
}

四、參考源碼

文檔倉庫:
https://gitee.com/cicadasmile/butte-java-note

源碼倉庫:
https://gitee.com/cicadasmile/butte-spring-parent

PostgreSQL配置參考:
https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/database/postgresql/P01、PostgreSQL環境搭建.md

Mybatis三種逆向工程:
https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/tool/T01、Mybatis三種逆向工程.md
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章