springboot整合postgresql
作者:mmseoamin日期:2024-01-19

springboot整合postgresql

      • 使用docker安装postgres
      • postgres客户端
      • 为表id字段设置主键自增
      • 查看最大连接数
      • springboot整合postgres
      • postgresql 数据类型到 Java 属性的映射
      • 对 postgresql 增删改查

        使用docker安装postgres

        简单起见,这里用docker来安装postgresql

        docker pull postgres
        
        docker run --name postgres \
         -e POSTGRES_PASSWORD=123456 \
         -p 5432:5432 \
         -v /usr/local/docker/postgresql/data:/var/lib/postgresql/data \
         -d postgres
        

        postgres客户端

        pgAdmin4镜像网站下载:https://mirrors.aliyun.com/postgresql/pgadmin/pgadmin4/

        使用pgAdmin4创建表,手动创建即可,注意,表名和表字段使用下划线方式命名,不要用驼峰,不然映射到Java 会报找不到表的错

        springboot整合postgresql,在这里插入图片描述,第1张

        为表id字段设置主键自增

        第一步:新建 sequence

        springboot整合postgresql,在这里插入图片描述,第2张

        第二步:为主键设置Sequences:

        alter table public.kss_user_pay alter column myid set default nextval('public.kss_user_pay_id_seq');
        

        第三步:查看是否已经绑定

        springboot整合postgresql,在这里插入图片描述,第3张

        查看最大连接数

        --获取当前实例的总的连接数
        select count(1) from pg_stat_activity ;
        --获取当前实例的空闲连接数
        select count(1) from pg_stat_activity where state = 'idle';
        show max_connections;
        select name, setting, context, source from pg_settings where name = 'max_connections';
        select * from pg_file_settings where error is not null;
        

        可以更改最大连接数,避免多个客户端连接不上的问题

        springboot整合postgres

        持久层还用的mybatis,先导入下依赖

        
        	org.postgresql
        	postgresql
        
        

        application.yml配置,这块,以前mysql是怎么配,postgres就怎么配,换个用户密码的事儿

        spring:
          datasource:
            type: com.zaxxer.hikari.HikariDataSource
            #PostgreSQL驱动
            driver-class-name: org.postgresql.Driver
            #PostgreSQL配置
            url: jdbc:postgresql://192.168.133.128:5432/postgres?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf-8&useSSL=false
            #用户密码
            username: postgres
            password: 123456
            hikari:
              connection-timeout: 60000
              validation-timeout: 3000
              idle-timeout: 60000
              login-timeout: 5
              max-lifetime: 60000
              maximum-pool-size: 400
              minimum-idle: 100
              read-only: false
        

        postgresql 数据类型到 Java 属性的映射

        这点其实大部分跟 MySQL 差不多,

        character varying -> String

        timestamp without time zone -> Date

        integer -> Integer

        UUID -> UUID

        这里重点看一下 UUID 映射处理

        springboot整合postgresql,在这里插入图片描述,第4张

        然后代码中需要使用 UUID.fromString 做个转换,比如下面这样:

        springboot整合postgresql,在这里插入图片描述,第5张

        对 postgresql 增删改查

        对 postgresql 增删改查代码和对mysql的增删改查没有任何区别,我们只是更换了数据源,代码不用做任何改动(比如说之前是通过 mybatis 操作 mysql,现在只是把 mysql 换成 postgre,代码还是保持原来一样即可)