SpringBoot3集成PostgreSQL

打印 上一主题 下一主题

主题 532|帖子 532|积分 1611

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

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

  1. # 1、RPM仓库
  2. sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
  3. # 2、安装PostgreSQL
  4. sudo yum install -y postgresql14-server
  5. # 3、初始化选项
  6. sudo /usr/pgsql-14/bin/postgresql-14-setup initdb
  7. sudo systemctl enable postgresql-14
  8. sudo systemctl start postgresql-14
  9. # 4、查看版本
  10. psql --version
  11. psql (PostgreSQL) 14.11
复制代码
二、工程搭建

1、工程结构


2、依靠管理

Druid毗连池使用的是1.2.18版本;使用mybatis-plus组件的3.5.3.1版本;PostgreSQL当地环境是14.11版本,这里依靠包使用42.6.2版本;
  1. <!-- Postgresql -->
  2. <dependency>
  3.     <groupId>org.postgresql</groupId>
  4.     <artifactId>postgresql</artifactId>
  5.     <version>${postgresql.version}</version>
  6. </dependency>
  7. <!-- Druid组件 -->
  8. <dependency>
  9.     <groupId>com.alibaba</groupId>
  10.     <artifactId>druid-spring-boot-3-starter</artifactId>
  11.     <version>${druid-spring-boot.version}</version>
  12. </dependency>
  13. <!-- MybatisPlus组件 -->
  14. <dependency>
  15.     <groupId>com.baomidou</groupId>
  16.     <artifactId>mybatis-plus-boot-starter</artifactId>
  17.     <version>${mybatis-plus.version}</version>
  18. </dependency>
  19. <dependency>
  20.     <groupId>com.baomidou</groupId>
  21.     <artifactId>mybatis-plus-generator</artifactId>
  22.     <version>${mybatis-plus.version}</version>
  23. </dependency>
复制代码
三、PostgreSQL配置

1、数据库配置

有关于Druid毗连池的可配置参数还有许多,可以参考源码中的描述或者官方案例,此处只提供部门常见的参数配置;
  1. spring:
  2.   datasource:
  3.     type: com.alibaba.druid.pool.DruidDataSource
  4.     druid:
  5.       # 数据库
  6.       url: jdbc:postgresql://127.0.0.1:5432/pg-data-14
  7.       username: postgres
  8.       password: postgres
  9.       driver-class-name: org.postgresql.Driver
  10.       # 连接池-初始化大小
  11.       initial-size: 10
  12.       # 连接池-最大连接数
  13.       max-active: 100
  14.       # 最大等待时间
  15.       max-wait: 60000
  16.       # 连接池-最小空闲数
  17.       min-idle: 10
  18.       # 检测空闲连接
  19.       test-while-idle: true
  20.       # 最小空闲时间
  21.       min-evictable-idle-time-millis: 300000
复制代码
2、逆向工程类

逆向工程新版本的API语法和之前有厘革,但是团体的逻辑还是差不多。别的的SQL脚本和底子案例,以及相关单元测试不再赘述,参考源码堆栈即可。
  1. public class GeneratorMybatisPlus {
  2.     private static final String jdbcUrl = "数据库地址";
  3.     private static final String outDir = "存放路径";
  4.     public static void main(String[] args) {
  5.         // 数据源配置
  6.         DataSourceConfig dataSourceConfig = new DataSourceConfig.Builder
  7.                 (jdbcUrl,"postgres","postgres")
  8.                 .build();
  9.         // 代码生成器
  10.         AutoGenerator autoGenerator = new AutoGenerator(dataSourceConfig);
  11.         // 全局配置
  12.         GlobalConfig globalConfig = new GlobalConfig.Builder()
  13.                 .outputDir(outDir).disableOpenDir().author("知了一笑") // .enableSwagger()
  14.                 .build();
  15.         // 分包配置
  16.         PackageConfig packageConfig = new PackageConfig.Builder()
  17.                 .parent("com.boot.pgsql.generator").controller("controller")
  18.                 .service("dao").serviceImpl("dao.impl").mapper("mapper").entity("entity")
  19.                 .build();
  20.         // 策略配置
  21.         StrategyConfig strategyConfig = new StrategyConfig.Builder()
  22.                 .addInclude("user_info","sys_user")
  23.                 .addTablePrefix("")
  24.                 .entityBuilder().enableLombok()
  25.                 .naming(NamingStrategy.underline_to_camel)
  26.                 .columnNaming(NamingStrategy.underline_to_camel)
  27.                 .controllerBuilder().formatFileName("%sController")
  28.                 .entityBuilder().formatFileName("%s")
  29.                 .serviceBuilder().formatServiceFileName("%sDao").formatServiceImplFileName("%sDaoImpl")
  30.                 .mapperBuilder().formatMapperFileName("%sMapper").formatXmlFileName("%sMapper")
  31.                 .build();
  32.         autoGenerator.global(globalConfig);
  33.         autoGenerator.packageInfo(packageConfig);
  34.         autoGenerator.strategy(strategyConfig);
  35.         // 执行
  36.         autoGenerator.execute();
  37.     }
  38. }
复制代码
四、参考源码

  1. 文档仓库:
  2. https://gitee.com/cicadasmile/butte-java-note
  3. 源码仓库:
  4. https://gitee.com/cicadasmile/butte-spring-parent
  5. PostgreSQL配置参考:
  6. https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/database/postgresql/P01、PostgreSQL环境搭建.md
  7. Mybatis三种逆向工程:
  8. https://gitee.com/cicadasmile/butte-java-note/blob/master/doc/frame/tool/T01、Mybatis三种逆向工程.md
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

大连全瓷种植牙齿制作中心

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表