Postgres Golang

Postgres Golang



Golangiks nimetatakse sageli Google'i loodud avatud lähtekoodiga, kompileeritud ja staatiliselt trükitud programmeerimiskeelt. See on loodud lihtsalt arusaadavaks, kiireks, selgeks ja suure jõudlusega.

PostgreSQL, mida sageli nimetatakse lihtsalt Postgresiks, on võimas avatud lähtekoodiga objektide relatsiooniandmebaasisüsteem. Rohkem kui 30 aastat kestnud aktiivse arendustegevusega on see saavutanud tugeva maine oma vastupidavuse, täiustatud funktsioonide ja oluliste standardite järgimise poolest.

See on loodud suure töökoormusega tegelemiseks, alates üksikutest masinatest kuni andmeladude või paljude samaaegsete kasutajatega veebiteenusteni. See tagab tehingute terviklikkuse ja vastupidavuse ning toetab erinevaid täiustatud andmetüüpe ja võimsat, paindlikku andmetöötluskeelt.







See õpetus õpetab meile, kuidas konfigureerida ja ühendada PostgreSQL-server Go rakendusega.



Nõuded:

Mine programmeerimiskeelesse – See tagab, et teie arvutisse on installitud Go kompilaator.



PostgreSQL andmebaas – Samuti peab teil olema installitud PostgreSQL. Saate selle installida otse oma masinasse või kasutada lihtsamaks seadistamiseks Dockeri konteinerit.





Arendustööriistad – Integreeritud arenduskeskkond (IDE), mis toetab Go nagu Visual Studio Code, GoLand jne.

SQL-i ja Go algteadmised – PostgreSQL-i andmebaasiga suhtlemiseks peate mõistma SQL-i ja erinevaid päringuid, mida peate tegema. Teil on vaja ka algteadmisi Go keelest.



Kui etteantud nõuded on täidetud, saame jätkata järgmiste sammudega.

Projekti seadistamine

Alustame oma projektikataloogi struktuuri seadistamisega. Looge põhikataloog, kuhu peate salvestama projekti lähtekoodi.

$ mkdir golang_postgres

Liikuge kataloogi ja lähtestage uus Go moodul.

$ cd golang_postgres && go mod init main

Installige vajalikud draiverid

PostgreSQL-i andmebaasiga suhtlemiseks vajame Go programmeerimiskeele jaoks PostgreSQL-i draiverit.

Selle õpetuse jaoks kasutame pq-draiverit, mis pakub PostgreSQL-i andmebaasiga töötamiseks laia valikut funktsioone.

Saate selle installida, käivitades järgmise käsu:

minge saidile github.com / lib / pq

Looge andmebaas

Järgmine samm on uue PostgreSQL-i andmebaasi loomine. Jällegi saame seda teha PostgreSQL-i kestas.

$ psql -IN postgres

See käsk küsib teilt postgresi parooli. Pärast sisselogimist käivitage uue andmebaasi lähtestamiseks käsk 'loo andmebaas'.

postgres=# andmebaasi loomine golang;
LOO ANDMEBAAS

Antud käsk loob uue andmebaasi nimega “golang”. Asendage andmebaasi nimi oma soovitud nimega.

Seejärel saate sellega ühenduse loomisega kontrollida, kas andmebaas on edukalt loodud.

postgres=# \c golang;
Olete nüüd ühendatud andmebaasiga 'golang' kasutajana 'postgres'.

Järgmisena seadistage tabel, kuhu soovite andmed salvestada. Loome selle õpetuse jaoks lihtsa tabeli, mis salvestab seansi teabe.

CREATE TABLE db_clients (
id SERIAL PRIMARY KEY,
nimi VARCHAR(100) NOT NULL,
session_time TIMESTAMP NOT NULL,
number_of_queries INT DEFAULT 0,
Active_state BOOLEAN DEFAULT FALSE
);

Antud päring peaks looma uue tabeli nimega “db_clients”, mis salvestab infot antud andmebaasiserverisse sisse logitud klientide kohta.

Ühendage rakendus Go PostgreSQL-iga

Kui oleme andmebaasi ja andmebaasitabeli seadistanud, saame jätkata ja õppida, kuidas ühendada oma Go rakendus PostgreSQL-serveriga.

Alustuseks looge oma projekti juurtes fail 'main.go'.

$ puudutada main.go

Järgmisena redigeerige faili valitud tekstiredaktoriga:

$ sest main.go

Lisage faili main.go lähtekood, nagu on näidatud järgmiselt.

pakett peamine

importida (
'andmebaas/sql'
'fmt'
'logi'

_ 'github.com/lib/pq'
)

func main ( ) {
connStr := 'postgres://postgres:password@localhost/golang?sslmode=disable'
db, err := sql.Open ( 'postgres' , connStr )
kui eks ! = null {
logi.Saatuslik ( eks )
}

kui err = db.Ping ( ) ; eks ! = null {
logi.Saatuslik ( eks )
}

fmt.Println ( 'Ühendatud andmebaasiga' )
}

Eelmises koodis alustame vajalike moodulite importimisega. Seejärel määratleme põhifunktsiooni. Lõpuks määratleme põhifunktsioonis ühendusstringi, mis võimaldab meil määrata sihthosti, andmebaasi kasutaja, andmebaasi parooli ja tegeliku sihtandmebaasi.

Moodul toetab ühendusstringis järgmisi parameetreid:

  • dbname – andmebaasi nimi, millega ühenduse luua.
  • kasutaja – kasutaja, kelle nimega sisse logitakse.
  • parool – kasutaja parool.
  • host – host, millega ühenduse luua. Väärtused, mis algavad tähega “/”, on mõeldud Unixi domeenisoklite jaoks (vaikimisi on localhost).
  • port – port, millega siduda (vaikeseade on 5432).
  • sslmode – kas kasutada SSL-i või mitte (vaikeväärtus on nõutav; see ei ole libpq vaikeseade).
  • fallback_application_name – rakenduse_nimi, mille juurde tagasi pöörduda, kui seda pole esitatud.
  • connect_timeout – maksimaalne ühenduse ooteaeg sekundites. Null või määramata tähendab lõputult ootamist.
  • sslcert – sertifikaadi faili asukoht. Fail peab sisaldama PEM-kodeeringuga andmeid.
  • sslkey – võtmefaili asukoht. Fail peab sisaldama PEM-kodeeringuga andmeid.
  • sslrootcert – juursertifikaadi faili asukoht. Fail peab sisaldama PEM-kodeeringuga andmeid.

Vajadusel saate konfigureerida sihtühenduse atribuute. SSL-i ja aktsepteeritud SSLMode parameetrite konfigureerimiseks vaadake meie õpetust https://linuxhint.com/postgres-sslmode .

Kui olete ühenduse omadustega rahul, saate käivitada eelmise koodi, et testida, kas ühendus on loodud.

mine jooksma .\main.go

Ühendamisel peaksite saama järgmise väljundi:

Ühendatud andmebaasiga

PostgreSQL Sisestage andmed tabelisse

Järgmine samm on näidisandmete sisestamine varem loodud tabelisse. Seda saame teha, defineerides sisestuspäringud stringliteraalina ja seejärel kasutades sihtpäringu käivitamiseks funktsiooni db.Exec().

Kood on järgmine:

---
insertStatement := `INSERT INTO db_kliendid (nimi, seansi_aeg, päringute_arv, aktiivne_olek)
VÄÄRTUSED
('psql', '2023-05-26 10:15:00', 10, tõsi),
('datagrip', '2023-05-26 09:30:00', 5, tõsi),
('dbeaver', '2023-05-26 11:00:00', 20, tõsi),
('töölaud', '2023-05-26 14:45:00', 15, vale),
('kaugjuhtimine', '2023-05-26 13:20:00', 8, tõsi);`

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

Kui käivitate eelmise koodi, peaks see sisestama määratud kirjed sihttabelisse.

PostgreSQL päringuandmed

Tabeli ridade päringute tegemiseks saame defineerida valikulause stringina ja kasutada selle käivitamiseks käsku db.Query(). Saame funktsiooni Next() abil tabeli ridu korrata ja need välja printida, nagu on näidatud järgmiselt:

read, err := db.Query ( 'SELECT * FROM db_clients' )
kui eks ! = null {
logi.Saatuslik ( eks )
}
lükka ridu edasi.Sule ( )

jaoks rida.Järgmine ( ) {
oli id int
var nime string
var sessionAeg aeg.Aeg
var numberOfQueries int
var activeState bool

err := read.Scan ( & id , & nimi, & seansi aeg, & päringute arv, & aktiivne olek )
kui eks ! = null {
logi.Saatuslik ( eks )
}

fmt.Printf ( 'ID: %d, nimi: %s, seansi aeg: %s, päringute arv: %d, aktiivne olek: %t \n ' , id , nimi, seansiaeg, päringute arv, aktiivne olek )
}

kui err = read.Err ( ) ; eks ! = null {
logi.Saatuslik ( eks )
}

Kui oleme eelmise koodi käivitanud, peaks see printima tabelist db_clients kõik read, nagu on näidatud järgmises näiteväljundis:

Siin on see!

Järeldus

Uurisime, kuidas saame kasutada pq-paketti PostgreSQL-i andmebaasi ühendamiseks ja Golangi abil päringute tegemiseks.