SpringBoot3集成PostgreSQL的详细过程

 更新时间:2024年03月25日 08:57:33   作者:知了一笑  
PostgreSQL是一个功能强大的开源数据库系统,具有可靠性、稳定性、数据一致性等特点,且可以运行在所有主流操作系统上,包括Linux、Unix、Windows等,这篇文章主要介绍了SpringBoot3集成PostgreSQL,需要的朋友可以参考下

PostgreSQL是一个功能强大的开源数据库系统,具有可靠性、稳定性、数据一致性等特点,且可以运行在所有主流操作系统上,包括Linux、Unix、Windows等。

一、简介

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

Gitee主页: https://gitee.com/cicadasmile/butte-java-note

到此这篇关于SpringBoot3集成PostgreSQL的文章就介绍到这了,更多相关SpringBoot3集成PostgreSQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • postgresql 实现数据的导入导出

    postgresql 实现数据的导入导出

    这篇文章主要介绍了postgresql 实现数据的导入导出,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-12-12
  • Postgresql创建新增、删除与修改触发器的方法

    Postgresql创建新增、删除与修改触发器的方法

    这篇文章主要介绍了Postgresql创建新增、删除与修改触发器的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-12-12
  • 玩转PostgreSQL之30个实用SQL语句

    玩转PostgreSQL之30个实用SQL语句

    本文主要整理总结了30个实用SQL,方便大家可以高效利用PostgreSQL,需要的朋友可以参考下
    2022-11-11
  • 启动PostgreSQL服务器 并用pgAdmin连接操作

    启动PostgreSQL服务器 并用pgAdmin连接操作

    这篇文章主要介绍了启动PostgreSQL服务器 并用pgAdmin连接操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL有效地处理数据的加密和解密的常见方法

    PostgreSQL有效地处理数据的加密和解密的常见方法

    在信息化建设和等保建设中,都要求实现对用户数据的隐私保护,也就是我们常说的脱敏,那么在 PostgreSQL 数据库中有没有这样的方法或者策略可以实现呢,本文小编将给大家介绍一下PostgreSQL有效地处理数据的加密和解密的常见方法,需要的朋友可以参考下
    2025-03-03
  • PostgreSQL如何杀死被锁死的进程问题

    PostgreSQL如何杀死被锁死的进程问题

    文章总结:文章主要介绍了如何使用PostgreSQL提供的pg_cancel_backend()和pg_terminate_backend()函数来解决数据库表被锁住的问题,以及如何查询哪些表、哪些进程被锁住了
    2024-12-12
  • 详解PostgreSQL中实现数据透视表的三种方法

    详解PostgreSQL中实现数据透视表的三种方法

    数据透视表(Pivot Table)是进行数据汇总、分析、浏览和展示的强大工具,可以帮助我们了解数据中的对比情况、模式和趋势,是数据分析师和运营人员必备技能之一,本给大家介绍PostgreSQL中实现数据透视表的三种方法,需要的朋友可以参考下
    2024-04-04
  • postgresql修改完端口后直接psql连接数据库报错的解决

    postgresql修改完端口后直接psql连接数据库报错的解决

    这篇文章主要介绍了postgresql修改完端口后直接psql连接数据库报错的解决,具有很好的参考价值,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • postgresql 实现多表关联删除

    postgresql 实现多表关联删除

    这篇文章主要介绍了postgresql 实现多表关联删除操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • PostgreSQL长事务概念解析

    PostgreSQL长事务概念解析

    pg中的长事务会影响表中垃圾回收,导致表的年龄增长无法freeze。能消耗事务的只有当执行了一些DML或者DDL操作后才能算是我们通常说的长事务。否则只能算是我们常说的长连接,当然长连接也有很多弊端,例如占用内存、cpu等资源
    2022-09-09

最新评论