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.DruidDataSourcedruid:# 数据库url: jdbc:postgresql://127.0.0.1:5432/pg-data-14username: postgrespassword: postgresdriver-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-parentPostgreSQL配置参考:
https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/database/postgresql/P01、PostgreSQL环境搭建.mdMybatis三种逆向工程:
https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/tool/T01、Mybatis三种逆向工程.md

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/776498.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

DolphinScheduler3.2.1 伪集群部署[二]

文章目录 DolphinScheduler 伪集群部署前置准备工作准备 DolphinScheduler 启动环境配置用户免密及权限配置机器 SSH 免密登陆启动 zookeeper 修改相关配置修改 install_env.sh 文件修改 dolphinscheduler_env.sh 文件 初始化数据库启动 DolphinScheduler登录 DolphinScheduler…

SOCKS5服务器(基于 C++11 实现)

项目地址&#xff1a;https://github.com/xukeawsl/socks-server

MySQL数据库高级语句

文章目录 MySQL高级语句older by 排序区间判断查询或与且&#xff08;or 与and&#xff09;嵌套查询&#xff08;多条件&#xff09;查询不重复记录distinctcount 计数限制结果条目limit别名as常用通配符嵌套查询&#xff08;子查询&#xff09;同表不同表嵌套查询还能用于删除…

C语言例4-36:求Fibonacci数列的前40个数

教材优化代码如下&#xff1a; //求Fibonacci数列的前40个数 #include<stdio.h> int main(void) {long int f11,f21;int i1;for(;i<20;i){printf("%15ld%15ld",f1,f2);if(i%20)printf("\n");f1f2;f2f1;}return 0; } 结果如下&#xff1a; 我的基…

IC-随便记

1、移远通信---通信模组 物联网解决方案供应商&#xff0c;可提供完备的IoT产品和服务&#xff0c;涵盖蜂窝模组(5G/4G/3G/2G/LPWA)、车载前装模组、智能模组&#xff08;5G/4G/边缘计算&#xff09;、短距离通信模组(Wi-Fi&BT)、GNSS定位模组、卫星通信模组、天线等硬件产…

Radio Silence for mac 好用的防火墙软件

Radio Silence for Mac是一款功能强大的网络防火墙软件&#xff0c;专为Mac用户设计&#xff0c;旨在保护用户的隐私和网络安全。它具备实时网络监视和控制功能&#xff0c;可以精确显示每个网络连接的状态&#xff0c;让用户轻松掌握网络活动情况。 软件下载&#xff1a;Radio…

DNS 服务 Unbound 部署最佳实践

文章目录 安装unbound-control配置启动服务测试 参考&#xff1a; 官网地址&#xff1a;https://nlnetlabs.nl/projects/unbound/about/ 详细文档&#xff1a;https://unbound.docs.nlnetlabs.nl/en/latest/index.html DNS服务Unbound部署于使用 https://cloud.tencent.com/…

Redis项目实战

本文用用代码演示Redis实现分布式缓存、分布式锁、接口幂等性、接口防刷的功能。 课程地址&#xff1a;Redis实战系列-课程大纲_哔哩哔哩_bilibili 目录 一. 新建springBoot项目整合Redis 二. Redis实现分布式缓存 2.1 原理及好处 2.2 数据准备 2.3 Redis实现分布式缓存…

知行之桥EDI系统功能介绍——FlatFile 端口介绍

FlatFile 端口能够实现平面文件与XML文件的互相转换。 每个 Flat File 端口配置一个特定的平面文件格式&#xff0c;从而实现与 XML 格式的互相转换。Flat File 端口有两个主要的模式&#xff1a; Position DelimitedCharacter Delimited 对于 Position Delimited 平面文件&a…

紧急救援(pta团体天梯题)dijkstra算法灵活运用c++

作为一个城市的应急救援队伍的负责人&#xff0c;你有一张特殊的全国地图。在地图上显示有多个分散的城市和一些连接城市的快速道路。每个城市的救援队数量和每一条连接两个城市的快速道路长度都标在地图上。当其他城市有紧急求助电话给你的时候&#xff0c;你的任务是带领你的…

【Git篇】复习git

文章目录 &#x1f354;什么是git⭐git和svn的区别 &#x1f354;搭建本地仓库&#x1f354;克隆远程仓库&#x1f6f8;git常用命令 &#x1f354;什么是git Git是一种分布式版本控制系统&#xff0c;它可以追踪文件的变化、协调多人在同一个项目上的工作、恢复文件的旧版本等…

在宝塔面板中,为自己的云服务器安装SSL证书,为所搭建的网站启用https(主要部分攻略)

前提条件 My HTTP website is running Nginx on Debian 10&#xff08;或者11&#xff09; 时间&#xff1a;2024-3-28 16:25:52 你的网站部署在Debain 10&#xff08;或者11&#xff09;的 Nginx上 安装单域名证书&#xff08;默认&#xff09;&#xff08;非泛域名&#xf…

了解 C++ 中的三元运算符

在 C 编程中&#xff0c;三元运算符是一种特殊的运算符&#xff0c;也被称为条件运算符。它由 “?” 和 “:” 组成&#xff0c;通常用于简单的条件判断和返回不同的值。本文将介绍三元运算符的基本语法以及如何在 C 中使用它进行条件判断。 三元运算符的语法 三元运算符的基本…

现在做抖音小店都需要准备什么?需要什么条件?门槛很高吗?

大家好&#xff0c;我是电商花花。 自从抖音小店这个项目做的人越来越多&#xff0c;很多人都想赶上抖音小店这个红利项目&#xff0c;但是很多新手在刚开始接触这个项目时候因为不懂&#xff0c;开始频频踩雷&#xff0c;不得不关店重新再来。 我们今天汇总了一下抖音小店的…

低代码开发:助力企业实现数字化运维体系搭建

随着数字化浪潮的推进&#xff0c;企业对于快速响应市场变化、提升运营效率的需求日益迫切。在这一背景下&#xff0c;低代码开发&#xff08;Low-Code Development&#xff09;作为一种新兴的软件开发方法&#xff0c;正逐渐受到企业的青睐。低代码开发不仅简化了开发过程&…

OSCP靶场--image

OSCP靶场–image 考点(CVE-2023-34152 suid strace提权) 1.nmap扫描 ## ┌──(root㉿kali)-[~/Desktop] └─# nmap -Pn -sC -sV 192.168.178.178 --min-rate 2500 Starting Nmap 7.92 ( https://nmap.org ) at 2024-03-27 23:43 EDT Nmap scan report for 192.168.178.17…

时间同步-chrony

场景&#xff1a;内网主机需要搭建 NTP 服务&#xff0c;设置一台主机作为服务端&#xff0c;其他主机作为客户端。 1 、服务端 1.1 、检查服务是否存在 如果服务存在可以跳过1.2、1.3&#xff0c;直接进行配置文件修改 systemctl status chronyd1.2、上传安装包 如果不存…

Java基础知识总结(24)

limit 分页 原理&#xff1a; /* limit m,n ​ m 表示从下标为 m 的记录开始查询&#xff0c;第一条记录下标为 0&#xff0c;n 表示取出 n 条出来&#xff0c;如 果从 m 开始不够 n 条了&#xff0c;就有几条取几条。m(page-1)*n&#xff0c;&#xff08;page 页码&#xff…

hive授予指定用户特定权限及beeline使用

背景&#xff1a;因业务需要&#xff0c;需要使用beeline对hive数据进行查询&#xff0c;但是又不希望该用户可以查询所有的数据&#xff0c;希望有一个新用户bb给他指定的库表权限。 解决方案&#xff1a; 1.赋权语句&#xff0c;使用hive管理员用户在终端输入hive进入命令控…

如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问

前言 作者简介&#xff1a; 懒大王敲代码&#xff0c;计算机专业应届生 今天给大家聊聊如何在群晖NAS搭建bitwarden密码管理软件并实现无公网IP远程访问&#xff0c;希望大家能觉得实用&#xff01; 欢迎大家点赞 &#x1f44d; 收藏 ⭐ 加关注哦&#xff01;&#x1f496;&am…