Postgres Golang

Postgres Golang



A Golang néven gyakran emlegetett Go egy nyílt forráskódú, lefordított és statikusan gépelt programozási nyelv, amelyet a Google hoz létre. Úgy készült, hogy könnyen érthető, gyors, világos és nagy teljesítményű legyen.

A PostgreSQL, amelyet gyakran egyszerűen Postgres-nek neveznek, egy hatékony, nyílt forráskódú objektum-relációs adatbázisrendszer. Több mint 30 éves aktív fejlesztéssel szilárd hírnevet szerzett robusztusságának, fejlett funkcióinak és jelentős szabványmegfelelőségének köszönhetően.

Úgy tervezték, hogy kezelje a kiterjedt munkaterhelést, az egyes gépektől az adattárházakig vagy webszolgáltatásokig sok egyidejű felhasználóval. Tranzakciós integritást és tartósságot biztosít, valamint támogatja a különféle fejlett adattípusokat és a hatékony, rugalmas adatkezelési nyelvet.







Ez az oktatóanyag megtanítja nekünk, hogyan konfigurálhatunk és csatlakoztathatunk egy PostgreSQL-kiszolgálót egy Go alkalmazással.



Követelmények:

Irány a programozási nyelv – Biztosítja, hogy a Go fordító telepítve legyen a gépeden.



PostgreSQL adatbázis – Telepíteni kell a PostgreSQL-t is. Telepítheti közvetlenül a gépére, vagy használhat Docker-tárolót az egyszerűbb beállítás érdekében.





Fejlesztési eszközök – Integrált fejlesztői környezet (IDE), amely támogatja a Go-t, mint a Visual Studio Code, a GoLand stb.

SQL és Go alapismeretek – A PostgreSQL adatbázissal való interakcióhoz meg kell értenie az SQL-t és a különféle lekérdezéseket, amelyeket végre kell hajtania. A Go nyelv alapszintű ismerete is szükséges.



Ha a megadott követelmények teljesülnek, a következő lépésekkel léphetünk tovább.

Projekt beállítása

Kezdjük azzal, hogy felállítjuk projektkönyvtár-struktúránkat. Hozza létre a fő könyvtárat, ahol a projekt forráskódját kell tárolnia.

$ mkdir golang_postgres

Navigáljon a könyvtárba, és inicializáljon egy új Go modult.

$ CD golang_postgres && go mod init main

Telepítse a szükséges illesztőprogramokat

A PostgreSQL adatbázissal való interakcióhoz szükségünk van egy PostgreSQL-illesztőprogramra a Go programozási nyelvhez.

Ebben az oktatóanyagban a pq illesztőprogramot használjuk, amely szolgáltatások széles skáláját kínálja a PostgreSQL adatbázissal való együttműködéshez.

A következő parancs futtatásával telepítheti:

keresd fel a github.com oldalt / lib / pq

Hozzon létre egy adatbázist

A következő lépés egy új PostgreSQL adatbázis létrehozása. Ezt ismét megtehetjük a PostgreSQL shellben.

$ psql -BAN BEN postgres

Ez a parancs a postgres jelszavát kéri. Miután bejelentkezett, futtassa az „adatbázis létrehozása” parancsot egy új adatbázis inicializálásához:

postgres=# adatbázis létrehozása golang;
ADATBÁZIS LÉTREHOZÁSA

Az adott parancs egy új adatbázist hoz létre „golang” néven. Nyugodtan cserélje ki az adatbázis nevét a kívánt névre.

Ezután ellenőrizheti, hogy az adatbázis sikeresen létrejött-e, ha csatlakozik hozzá.

postgres=# \c golang;
Most már 'postgres' felhasználóként csatlakozik a 'golang' adatbázishoz.

Ezután állítsa be azt a táblázatot, ahol az adatokat tárolni kívánja. Ehhez az oktatóanyaghoz egy egyszerű táblázatot készítünk, amely tárolja a munkamenet adatait.

TÁBLÁZAT LÉTREHOZÁSA db_clients (
azonosító SOROS ELSŐDLEGES KULCS,
név VARCHAR(100) NOT NULL,
session_time TIMESTAMP NOT NULL,
number_of_queries INT DEFAULT 0,
active_state BOOLEAN ALAPÉRTELMEZETT HAMIS
);

Az adott lekérdezésnek létre kell hoznia egy új „db_clients” táblát, amely információkat tárol az adott adatbázis-kiszolgálóra bejelentkezett ügyfelekről.

Csatlakoztassa a Go alkalmazást a PostgreSQL-hez

Miután beállítottuk az adatbázist és az adatbázistáblát, folytathatjuk, és megtanulhatjuk, hogyan kapcsoljuk össze Go alkalmazásunkat a PostgreSQL szerverrel.

Először hozzon létre egy „main.go” fájlt a projekt gyökerében:

$ érintés fő.go

Ezután szerkessze a fájlt a választott szövegszerkesztővel:

$ mert fő.go

A „main.go” fájlban adja hozzá a forráskódot az alábbiak szerint:

csomag fő

import (
'adatbázis/sql'
'fmt'
'napló'

_ 'github.com/lib/pq'
)

func main ( ) {
connStr := 'postgres://postgres:password@localhost/golang?sslmode=disable'
db, err := sql.Open ( 'postgres' , connStr )
ha téved ! = nulla {
log.Végzetes ( téved )
}

ha err = db.Ping ( ) ; téved ! = nulla {
log.Végzetes ( téved )
}

fmt.Println ( 'Csatlakozva az adatbázishoz' )
}

Az előző kódban a szükséges modulok importálásával kezdjük. Ezután meghatározzuk a fő funkciót. Végül a fő függvényben definiáljuk a kapcsolati karakterláncot, amely lehetővé teszi a célállomás, az adatbázis-felhasználó, az adatbázisjelszó és a tényleges céladatbázis megadását.

A modul a következő paramétereket támogatja a kapcsolati karakterláncban:

  • dbname – A csatlakozáshoz szükséges adatbázis neve.
  • user – A felhasználó, akiként bejelentkezik.
  • jelszó – A felhasználó jelszava.
  • host – A gazdagép, amelyhez csatlakozni kell. A „/”-vel kezdődő értékek a Unix tartományi socketekre vonatkoznak (az alapértelmezett a localhost).
  • port – A csatlakozáshoz szükséges port (az alapértelmezett 5432).
  • sslmode – SSL-t használ-e vagy sem (az alapértelmezés kötelező; ez nem az alapértelmezett a libpq esetében).
  • fallback_application_name – Alkalmazásnév, amelyre vissza kell térni, ha nincs megadva.
  • connect_timeout – A maximális várakozási idő a csatlakozásra másodpercben. A nulla vagy nincs megadva azt jelenti, hogy a végtelenségig várni kell.
  • sslcert – A tanúsítvány fájl helye. A fájlnak tartalmaznia kell a PEM-kódolású adatokat.
  • sslkey – A kulcsfájl helye. A fájlnak tartalmaznia kell a PEM-kódolású adatokat.
  • sslrootcert – A gyökértanúsítvány fájl helye. A fájlnak tartalmaznia kell a PEM-kódolású adatokat.

Szükség szerint konfigurálhatja a célkapcsolat tulajdonságait. Az SSL és az elfogadott SSLMode paraméterek konfigurálásához tekintse meg oktatóanyagunkat https://linuxhint.com/postgres-sslmode .

Ha elégedett a kapcsolat tulajdonságaival, az előző kód futtatásával tesztelheti, hogy a kapcsolat létrejött-e.

menj futni .\main.go

Csatlakozáskor a következő kimenetet kell kapnia:

Adatbázishoz csatlakozva

PostgreSQL Adatok beszúrása a táblázatba

A következő lépés a mintaadatok beszúrása a korábban létrehozott táblázatba. Ezt úgy tehetjük meg, hogy a beszúrási lekérdezéseket karakterlánc-literálként definiáljuk, majd a db.Exec() függvényt használjuk a céllekérdezés futtatásához.

A kód a következő:

---
insertStatement := `INSERT INTO db_clients (név, session_time, lekérdezések száma, aktív_állapot)
ÉRTÉKEK
('psql', '2023-05-26 10:15:00', 10, igaz),
('datagrip', '2023-05-26 09:30:00', 5, igaz),
('dbeaver', '2023-05-26 11:00:00', 20, igaz),
('munkapad', '2023-05-26 14:45:00', 15, false),
('távoli', '2023-05-26 13:20:00', 8, igaz);`

_, err = db.Exec(insertStatement)
if err != nil {
log.Fatal(err)
}

Ha az előző kódot futtatja, akkor be kell illesztenie a megadott rekordokat a céltáblába.

PostgreSQL lekérdezési adatok

A tábla sorainak lekérdezéséhez a select utasítást karakterláncként definiálhatjuk, és a db.Query() segítségével futtathatjuk. A Next() függvénnyel iterálhatjuk a táblázat sorait, és kinyomtathatjuk őket az alábbiak szerint:

sorok, err := db.Query ( 'SELECT * FROM db_clients' )
ha téved ! = nulla {
log.Végzetes ( téved )
}
sorokat elhalasztani.Bezárni ( )

számára sorok.Következő ( ) {
volt id int
var név karakterlánc
var sessionTime time.Time
var numberOfQueries int
var activeState bool

err := rows.Scan ( & id , & név, & munkamenet ideje, & NumberOfQuerys, & activeState )
ha téved ! = nulla {
log.Végzetes ( téved )
}

fmt.Printf ( 'ID: %d, Név: %s, Munkamenet ideje: %s, Lekérdezések száma: %d, Aktív állapot: %t \n ' , id , név, sessionTime, numberOfQueries, activeState )
}

ha err = sorok.Err ( ) ; téved ! = nulla {
log.Végzetes ( téved )
}

Miután futtattuk az előző kódot, ki kell nyomtatnia a db_clients tábla összes sorát, ahogy az a következő példakimenetben látható:

Tessék, itt van!

Következtetés

Megvizsgáltuk, hogyan használhatjuk a pq csomagot a PostgreSQL adatbázis csatlakoztatására és lekérdezésére a Golang segítségével.