首页 > 数据库 >SpringBoot3集成PostgreSQL

SpringBoot3集成PostgreSQL

时间:2024-03-24 15:12:03浏览次数:32  
标签:集成 postgresql 14 源码 SpringBoot3 版本 PostgreSQL com

标签: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

标签:集成,postgresql,14,源码,SpringBoot3,版本,PostgreSQL,com
From: https://www.cnblogs.com/cicada-smile/p/18092442

相关文章

  • 史上最全:PostgreSQL SQL的基础使用及技巧
    1、数据类型总体介绍referto:https://www.postgresql.org/docs/14/datatype.htmlNameAliasesDescriptionbigintint8signedeight-byteintegerbigserialserial8autoincrementingeight-byteintegerbit[(*n*)]fixed-lengthbitstringbitvary......
  • AntSK 0.2.3 版本更新:轻松集成 AI 本地离线模型
        大家好,今天和大家分享 AntSK知识库/智能体项目的最新进展。       AntSK是一个基于 .Net8、Blazor 及 SemanticKernel 开发的AI项目,旨在为开发者提供一个强大的AI知识库与智能体平台。最新版本的项目可以在GitHub上找到:https://github.com/A......
  • [MAUI]集成高德地图组件至.NET MAUI Blazor项目
    @目录前期准备:注册高德开发者并创建key登录控制台创建key获取key和密钥创建项目创建JSAPILoader配置权限创建定义创建模型创建地图组件创建交互逻辑项目地址地图组件在手机App中常用地理相关业务,如查看线下门店,设置导航,或选取地址等。是一个较为常见的组件。在.NETMAUI......
  • PostgreSQL中的CTE(公共表表达式)知多少? - (中级)
    与我联系:微信公众号:数据库杂记   个人微信: iiihero我是iihero. 也可以叫我Sean.iihero@CSDN(https://blog.csdn.net/iihero) Sean@墨天轮 (https://www.modb.pro/u/16258)数据库领域的资深爱好者一枚。水木早期数据库论坛发起人 db2@smth就是俺,早期多年水木......
  • SpringBoot项目集成XXL-job
    文章目录首先引入依赖配置信息配置类定义定时任务执行方法配置任务执行器配置任务执行计划在集成XXL-job前,首先确保部署了XXL-job的admin服务,如果还没有部署的话请参照Docker安装部署XXL-Job将XXL-job部署起来.此时,XXL-job已经部署好了,下来一......
  • SpringBoot3.x与SpringDoc OpenApi之Swagger接口排序
    直接使用Swagger之后,发现所有的Controller接口菜单都是无序的先看一下效果 就是利用了一下SpringDoc提供的接口做了一下自定义排序1.在Controller上加上注解@Tag(name="MenuController",description="1-菜单管理")这里需要注意description属性,在下面的代码里......
  • PostgreSQL从小白到高手教程 - 第48讲:PG高可用实现keepalived
       PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUGPG技术大讲堂。 第48讲:PG高可用实现 内容1:keepalived简介内容2:Kee......
  • 我的postgresql数据库报端口错误,连接失败
    原因是服务没有启动下面这个命令是启动方式pg_ctl.exerestart-D"D:\ProgramFiles\PostgreSQL\14\data"""引号内的内容是下载postgresql数据库时候的data路径。一般就在postgresql安装路径里面D:\ProgramFiles\PostgreSQL\14\bin>pg_ctl.exerestart-D"D:\ProgramFiles......
  • 如何在Kubernetes集群中集成Cromwell和Volcano(概述)
    将Cromwell和Volcano在Kubernetes集群中集成,使用Volcano作为Cromwell调度器,涉及到在Kubernetes集群上安装和配置这两个系统以及确保它们能够无缝协作。以下是一个基于理解和实际操作经验的概括步骤,旨在指导如何进行这一集成:步骤1:安装Kubernetes集群确保你已经......
  • soda-data dremio 集成使用
    以前简单介绍过soda数据质量工具,以下是关于dremio集成的一个说明环境准备dremiodremio基于docker部署,具体可以参考https://github.com/rongfengliang/dremio_cluster_docker-composesodasoda包含了library以及core,我使用了core,不依赖cloud,基于venvpython......