大连全瓷种植牙齿制作中心 发表于 2024-6-13 20:23:24

SpringBoot3集成PostgreSQL

标签:PostgreSQL.Druid.Mybatis.Plus;
一、简介

PostgreSQL是一个功能强盛的开源数据库体系,具有可靠性、稳定性、数据一致性等特点,且可以运行在所有主流操作体系上,包括Linux、Unix、Windows等。
通过官方文档可以找到大量描述如何安装和使用PostgreSQL的信息。
环境搭建,基于Centos7部署的PostgreSQL-14版本,官方文档中提供yum安装的方式,配置的话可以参考源码堆栈中的其他版本「见文尾」,这里不赘述。
https://img-blog.csdnimg.cn/img_convert/84b6826ed68888b8f4e4d602fa788ef9.png
# 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、工程结构

https://img-blog.csdnimg.cn/img_convert/7ffda7ed2978fc8577f4e7b2fb86f6fb.png
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

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: SpringBoot3集成PostgreSQL