欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PostgreSQL Docker部署+SpringBoot集成方式

 更新時間:2024年12月16日 09:12:34   作者:愛寫B(tài)UG的老冉  
本文介紹了如何在Docker中部署PostgreSQL和pgadmin,并通過SpringBoot集成PostgreSQL,主要步驟包括安裝PostgreSQL和pgadmin,配置防火墻,創(chuàng)建數(shù)據(jù)庫和表,以及在SpringBoot中配置數(shù)據(jù)源和實體類

背景

最近公司有新項目需要使用 PostgreSQL ,于是簡單學(xué)習(xí)了一下,并記錄一下過程。

安裝PostgreSQL

拉取鏡像

docker pull mdillon/postgis

啟動容器

docker run --name postgis -e POSTGRES_PASSWORD=postgis -p 5432:5432 -d mdillon/postgis:latest

注:其中 POSTGRES_PASSWORD=postgis 設(shè)置了密碼為 postgis

安裝pgadmin4

pgadmin4可以理解為在線操作PostgreSQL的可視化網(wǎng)站,(也可以不安裝這個,用DBeaver 或者 Navicat進行連接使用。

拉取鏡像

docker pull dpage/pgadmin4

啟動容器

docker run -d -p 5050:80 --name pgadmin4 -e PGADMIN_DEFAULT_EMAIL=admin -e PGADMIN_DEFAULT_PASSWORD=admin dpage/pgadmin4
  • PGADMIN_DEFAULT_EMAIL=admin是設(shè)置管理員賬號為admin
  • PGADMIN_DEFAULT_PASSWORD=admin 是設(shè)置密碼為 admin

防火墻放行端口

firewall-cmd --zone=public --add-port=5050/tcp --permanent

由于部分服務(wù)器的設(shè)置,防火墻對部分端口沒有放開,這時外部通過端口訪問的時候可能請求不到,所以需要放行端口。

頁面操作

前面操作執(zhí)行成功后,通過url:http://{ip}:5050/login 進行頁面訪問,可進入下面這個頁面,輸入賬號密碼,語言選擇中文,點擊登錄即可。

進入頁面后,選擇添加服務(wù)器,然后輸入我們數(shù)據(jù)庫的相關(guān)信息即可添加成功


然后我們選擇創(chuàng)建架構(gòu)(其他地方也有翻譯為模式),為后文測試做準(zhǔn)備(作者這里創(chuàng)造的是名為test的架構(gòu))

然后在test下創(chuàng)建一張名為test1的表,該表只需要保護一個int類型的id字段即可

建表后任意添加一條數(shù)據(jù)

SpringBoot集成

作者這里使用的是各依賴版本如下:

  • SpringBoot: 2.3.7.RELEASE
  • postgresql: 42.2.23
  • lombok: 1.18.26
  • mybatis: 2.3.0
  • mybatis-plus: 3.4.3

pom依賴

	<properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
        <spring-boot.version>2.3.7.RELEASE</spring-boot.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.postgresql</groupId>
            <artifactId>postgresql</artifactId>
            <version>42.2.23</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-jdbc</artifactId>
            <version>2.3.7.RELEASE</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.26</version>
        </dependency>

        <dependency>
            <groupId>org.mybatis.spring.boot</groupId>
            <artifactId>mybatis-spring-boot-starter</artifactId>
            <version>2.3.0</version>
        </dependency>

        <dependency>
            <groupId>com.baomidou</groupId>
            <artifactId>mybatis-plus-boot-starter</artifactId>
            <version>3.4.3</version>
        </dependency>

    </dependencies>

application.yml

server:
  port: 9001

spring:
  datasource:
    driver-class-name: org.postgresql.Driver
    username: postgres
    password: postgis
    url: jdbc:postgresql://{ip}:5432/postgres?currentSchema=test

mybatis:
  mapper-locations: classpath:mapper/*.xml
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

注:對于jdbc:postgresql://{ip}:5432/postgres?currentSchema=test這里,如果不填 currentSchema=test則默認(rèn)走postgrespublic這個模式(也就是我們前文創(chuàng)建的架構(gòu)),這里我們要走我們自己創(chuàng)建的test模式,所以這里需要把這個配置加上。

domain實體類

package com.ran.pgsql_code.domain;

import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Data;

@Data
@TableName(value = "test1")
public class Test {
    private Long id;
}

注:這里的表名要和我們前文創(chuàng)建的表對應(yīng)上。

mapper

package com.ran.pgsql_code.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ran.pgsql_code.domain.Test;

public interface TestMapper extends BaseMapper<Test> {

}

注:需要去application添加注解,這里要和我們的mapper創(chuàng)建的路徑保持一致

@MapperScan("com.ran.pgsql_code.mapper")

代碼調(diào)試

創(chuàng)建測試類,執(zhí)行以下代碼

package com.ran.pgsql_code;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.ran.pgsql_code.mapper.TestMapper;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.jdbc.core.JdbcTemplate;

import javax.annotation.Resource;
import java.util.List;

@Slf4j
@SpringBootTest
class Tests {
    @Resource
    private TestMapper testMapper;

    @Test
    void queryForMybatisPlus(){
        QueryWrapper<com.ran.pgsql_code.domain.Test> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("id", 1L);
        List<com.rlz.pgsql_code.domain.Test> result = testMapper.selectList(queryWrapper);
        if (result == null){
            return;
        }
        for (com.rlz.pgsql_code.domain.Test test : result){
            System.out.println(test);
        }
    }

}

執(zhí)行能成功查到,集成成功

總結(jié)

由于PostgreSQLMySQL的語法都是基于SQL來的,所以作者個人認(rèn)為沒必要重學(xué)一遍PostgreSQL的語法,基礎(chǔ)的增刪改查也可以通過mybatis來直接操作,等在實際應(yīng)用中遇到了一些PostgreSQL的特殊化操作再去學(xué)習(xí)也是完全可以的。

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java實現(xiàn)的xml格式化實現(xiàn)代碼

    java實現(xiàn)的xml格式化實現(xiàn)代碼

    這篇文章主要介紹了java實現(xiàn)的xml格式化實現(xiàn)代碼,需要的朋友可以參考下
    2016-11-11
  • springboot 中 druid+jpa+MYSQL數(shù)據(jù)庫配置過程

    springboot 中 druid+jpa+MYSQL數(shù)據(jù)庫配置過程

    這篇文章主要介紹了springboot 中 druid+jpa+MYSQL數(shù)據(jù)庫配置,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-08-08
  • Spark Streaming編程初級實踐詳解

    Spark Streaming編程初級實踐詳解

    這篇文章主要為大家介紹了Spark Streaming編程初級實踐詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • java比較兩個list是否相同equals的代碼詳解

    java比較兩個list是否相同equals的代碼詳解

    在本篇文章里小編給大家分享的是關(guān)于java比較兩個list是否相同equals的代碼詳解,有需要的朋友們可以參考學(xué)習(xí)下。
    2020-02-02
  • Maven?Settings.xml的基本語法詳解

    Maven?Settings.xml的基本語法詳解

    這篇文章主要為大家介紹了Maven?Settings.xml的基本語法詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-11-11
  • SpringBoot整合Kaptcha實現(xiàn)圖形驗證碼功能

    SpringBoot整合Kaptcha實現(xiàn)圖形驗證碼功能

    這篇文章主要介紹了SpringBoot整合Kaptcha實現(xiàn)圖形驗證碼功能,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-09-09
  • java中字符串與日期的轉(zhuǎn)換實例

    java中字符串與日期的轉(zhuǎn)換實例

    java中字符串與日期的轉(zhuǎn)換實例,需要的朋友可以參考一下
    2013-05-05
  • Java 運算符詳情

    Java 運算符詳情

    這篇文章主要介紹了Java 運算符,Java 中的運算符與 C 語言基本一致。下面文章就圍繞Java 中的運算符的相關(guān)資料展開內(nèi)容,需要的朋友可以參考一下
    2021-11-11
  • Java設(shè)計模式系列之深入淺出單例模式

    Java設(shè)計模式系列之深入淺出單例模式

    設(shè)計模式是在大量的實踐中總結(jié)和理論之后優(yōu)選的代碼結(jié)構(gòu),編程風(fēng)格,以及解決問題的思考方式,下面這篇文章主要給大家介紹了關(guān)于Java設(shè)計模式系列之深入淺出單例模式的相關(guān)資料,需要的朋友可以參考下
    2021-09-09
  • 詳解Spring加載Properties配置文件的四種方式

    詳解Spring加載Properties配置文件的四種方式

    這篇文章主要介紹了詳解Spring加載Properties配置文件的四種方式,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-05-05

最新評論