Postgres Golang

Postgres Golang



Usein Golangiksi kutsuttu Go on avoimen lähdekoodin, käännetty ja staattisesti kirjoitettu ohjelmointikieli, jonka on luonut Google. Se on rakennettu helposti ymmärrettäväksi, nopeaksi, selkeäksi ja tehokkaaksi.

PostgreSQL, jota usein kutsutaan vain nimellä Postgres, on tehokas avoimen lähdekoodin objektirelaatiotietokantajärjestelmä. Yli 30 vuoden aktiivisella kehityksellä se on saavuttanut vahvan maineen kestävyydestään, edistyneistä ominaisuuksistaan ​​ja merkittävistä standardien noudattamisesta.

Se on suunniteltu käsittelemään laajoja työkuormia yksittäisistä koneista tietovarastoihin tai verkkopalveluihin, joissa on useita samanaikaisia ​​käyttäjiä. Se tarjoaa tapahtumien eheyden ja kestävyyden ja tukee erilaisia ​​edistyneitä tietotyyppejä ja tehokasta, joustavaa tiedonkäsittelykieltä.







Tämä opetusohjelma opettaa meille, kuinka PostgreSQL-palvelin määritetään ja liitetään Go-sovellukseen.



Vaatimukset:

Siirry ohjelmointikieliin – Se varmistaa, että Go-kääntäjä on asennettu koneellesi.



PostgreSQL-tietokanta – Sinulla on myös oltava PostgreSQL asennettuna. Voit asentaa sen suoraan koneellesi tai käyttää Docker-säilöä yksinkertaisempaa asennusta varten.





Kehitystyökalut – Integroitu kehitysympäristö (IDE), joka tukee Go:ta, kuten Visual Studio Code, GoLand jne.

SQL:n ja Go:n perustiedot – Jotta voit olla vuorovaikutuksessa PostgreSQL-tietokannan kanssa, sinun on ymmärrettävä SQL ja erilaiset suoritettavat kyselyt. Tarvitset myös perustiedot Go-kielestä.



Kun annetut vaatimukset täyttyvät, voimme siirtyä seuraaviin vaiheisiin.

Projektin asennus

Aloitetaan luomalla projektihakemistorakenne. Luo päähakemisto, johon sinun on tallennettava projektin lähdekoodi.

$ mkdir golang_postgres

Siirry hakemistoon ja alusta uusi Go-moduuli.

$ CD golang_postgres && mene mod init main

Asenna tarvittavat ohjaimet

Jotta voimme olla vuorovaikutuksessa PostgreSQL-tietokannan kanssa, tarvitsemme Go-ohjelmointikielelle PostgreSQL-ohjaimen.

Tässä opetusohjelmassa käytämme pq-ohjainta, joka tarjoaa laajan valikoiman ominaisuuksia PostgreSQL-tietokannan kanssa työskentelyyn.

Voit asentaa sen suorittamalla seuraavan komennon:

mene osoitteeseen github.com / lib / pq

Luo tietokanta

Seuraava askel on luoda uusi PostgreSQL-tietokanta. Jälleen voimme tehdä tämän PostgreSQL-kuoressa.

$ psql -SISÄÄN postgres

Tämä komento pyytää sinua antamaan postgres-salasanan. Kun olet kirjautunut sisään, suorita 'luo tietokanta' -komento alustaaksesi uuden tietokannan:

postgres=# luo tietokanta golang;
LUO TIETOKANTA

Annettu komento luo uuden tietokannan nimeltä 'golang'. Voit vapaasti korvata tietokannan nimen haluamallasi nimellä.

Voit sitten varmistaa, että tietokanta on luotu onnistuneesti muodostamalla yhteyden siihen.

postgres=# \c golang;
Olet nyt yhdistetty tietokantaan 'golang' käyttäjänä 'postgres'.

Aseta seuraavaksi taulukko, johon haluat tallentaa tiedot. Luomme tälle opetusohjelmalle yksinkertaisen taulukon, joka tallentaa istunnon tiedot.

LUO TABLE db_clients (
id SERIAL PRIMARY KEY,
nimi VARCHAR(100) NOT NULL,
session_time TIMESTAMP EI NULL,
kyselyjen_määrä INT OLETUS 0,
Active_state BOOLEAN OLETUS EPÄTOSI
);

Annetun kyselyn pitäisi luoda uusi taulukko nimeltä 'db_clients', joka tallentaa tiedot tiettyyn tietokantapalvelimeen kirjautuneista asiakkaista.

Yhdistä Go-sovellus PostgreSQL:ään

Kun olemme määrittäneet tietokannan ja tietokantataulukon, voimme jatkaa ja oppia yhdistämään Go-sovelluksemme PostgreSQL-palvelimeen.

Aloita luomalla main.go-tiedosto projektisi juureen:

$ kosketus main.go

Muokkaa seuraavaksi tiedostoa valitsemallasi tekstieditorilla:

$ koska main.go

Lisää main.go-tiedostoon lähdekoodi seuraavasti:

paketin pääasiallinen

tuonti (
'tietokanta/sql'
'fmt'
'Hirsi'

_ 'github.com/lib/pq'
)

func main ( ) {
connStr := 'postgres://postgres:password@localhost/golang?sslmode=disable'
db, err := sql.Open ( 'postgres' , connStr )
jos err ! = nolla {
loki.Kohtalovaa ( err )
}

jos err = db.Ping ( ) ; err ! = nolla {
loki.Kohtalovaa ( err )
}

fmt.Println ( 'Yhdistetty tietokantaan' )
}

Edellisessä koodissa aloitamme tuomalla tarvittavat moduulit. Sitten määritämme päätoiminnon. Lopuksi päätoiminnossa määritämme yhteysmerkkijonon, jonka avulla voimme määrittää kohde-isännän, tietokannan käyttäjän, tietokannan salasanan ja todellisen kohdetietokannan.

Moduuli tukee seuraavia yhteysmerkkijonon parametreja:

  • dbname – sen tietokannan nimi, johon muodostetaan yhteys.
  • user – Käyttäjä, jonka nimellä kirjaudutaan sisään.
  • salasana – käyttäjän salasana.
  • isäntä – Isäntä, johon yhdistetään. '/'-kirjaimella alkavat arvot ovat Unix-verkkotunnuksen pistokkeille (oletus on localhost).
  • portti – Portti, johon sidotaan (oletus on 5432).
  • sslmode – Käytetäänkö SSL:ää vai ei (oletus on vaadittava; tämä ei ole oletusarvo libpq:lle).
  • fallback_application_name – Sovelluksen_nimi, johon palataan, jos sellaista ei ole.
  • connect_timeout – Yhteyden suurin odotusaika sekunneissa. Nolla tai määrittelemätön tarkoittaa odottamista loputtomiin.
  • sslcert – Cert-tiedoston sijainti. Tiedoston tulee sisältää PEM-koodatut tiedot.
  • sslkey – Avaintiedoston sijainti. Tiedoston tulee sisältää PEM-koodatut tiedot.
  • sslrootcert – juurivarmennetiedoston sijainti. Tiedoston tulee sisältää PEM-koodatut tiedot.

Voit määrittää kohdeyhteysominaisuudet tarpeen mukaan. Jos haluat määrittää SSL:n ja hyväksytyt SSLMode-parametrit, katso opetusohjelmamme https://linuxhint.com/postgres-sslmode .

Kun olet tyytyväinen yhteyden ominaisuuksiin, voit suorittaa edellisen koodin ja testata, onko yhteys muodostettu.

mene juoksemaan .\main.go

Kytkettyäsi sinun pitäisi saada seuraava tulos:

Yhdistetty tietokantaan

PostgreSQL Lisää tiedot taulukkoon

Seuraava vaihe on lisätä näytetiedot aiemmin luomaan taulukkoon. Voimme tehdä tämän määrittämällä lisäyskyselyt merkkijonoliteraaliksi ja käyttämällä sitten db.Exec()-funktiota kohdekyselyn suorittamiseen.

Koodi on seuraava:

---
insertStatement := `INSERT INTO db_clients (nimi, istunnon_aika, kyselyiden_määrä, aktiivinen_tila)
ARVOT
('psql', '2023-05-26 10:15:00', 10, tosi),
('datagrip', '2023-05-26 09:30:00', 5, true),
('dbeaver', '2023-05-26 11:00:00', 20, totta),
('työpenkki', '2023-05-26 14:45:00', 15, false),
('kaukosäädin', '2023-05-26 13:20:00', 8, tosi);`

_, err = db.Exec(insertStatement)
jos err != nolla {
log.Fatal(err)
}

Jos suoritat edellisen koodin, sen pitäisi lisätä määritetyt tietueet kohdetaulukkoon.

PostgreSQL-kyselytiedot

Kun haluat tehdä kyselyn taulukon riveistä, voimme määrittää select-käskyn merkkijonoksi ja käyttää db.Query()-komentoa sen suorittamiseen. Voimme iteroida taulukon rivejä käyttämällä Next()-funktiota ja tulostaa ne seuraavan kuvan mukaisesti:

riviä, err := db.Query ( 'SELECT * FROM db_clients' )
jos err ! = nolla {
loki.Kohtalovaa ( err )
}
lykkää rivejä. Sulje ( )

varten riviä.Seuraava ( ) {
oli id int
var nimimerkkijono
var sessionTime time.Time
var numberOfQueries int
var activeState bool

err := rows.Scan ( & id , & nimi, & istunnon aika, & kyselyjen lukumäärä, & aktiivinen tila )
jos err ! = nolla {
loki.Kohtalovaa ( err )
}

fmt.Printf ( 'ID: %d, nimi: %s, istunnon aika: %s, kyselyiden määrä: %d, aktiivinen tila: %t \n ' , id , nimi, istunnon aika, kyselyiden lukumäärä, aktiivinen tila )
}

jos err = riviä.Err ( ) ; err ! = nolla {
loki.Kohtalovaa ( err )
}

Kun suoritamme edellisen koodin, sen pitäisi tulostaa kaikki rivit db_clients-taulukosta seuraavan esimerkkitulosteen mukaisesti:

Siinä se on!

Johtopäätös

Tutkimme, kuinka voimme käyttää pq-pakettia PostgreSQL-tietokannan muodostamiseen ja kyselyyn Golangin avulla.