Kaltaisesi lukijat auttavat tukemaan MUO: ta. Kun teet ostoksen käyttämällä sivustollamme olevia linkkejä, voimme ansaita kumppanipalkkion. Lue lisää.

Postgres on yksi suosituimmista SQL-tietokannoista monien ominaisuuksiensa ja helppokäyttöisyytensä ansiosta. Postgres on ACID-yhteensopiva, ja siinä on ominaisuuksia, kuten Multi-Version Concurrency Control, async replikointi, sisäkkäiset tapahtumat ja kirjoitus eteenpäin. Monien muiden ohella nämä ominaisuudet tekevät Postgresista SQL-tietokannan hallintajärjestelmän.

Go-ekosysteemissä on monia paketteja vuorovaikutukseen erilaisten DBMS-järjestelmien kanssa, mukaan lukien Postgres. Go tarjoaa sisäänrakennetun tietokanta/sql paketti SQL-tietokantojen työskentelyyn tietokanta-ajureilla. Go-tietorakenteiden avulla voit integroida suosittuja kolmannen osapuolen ORM-järjestelmiä, kuten GORM, helpottaaksesi vuorovaikutusta tietokantasi kanssa.

GORMin ja Postgresin käytön aloittaminen

GORM-paketti on yksi Go-ekosysteemin suosituimmista ORM-järjestelmistä, koska se on kehittäjäystävällinen, monipuolinen ja perustuu the tietokanta/sql paketti.

GORM tarjoaa toimintoja automaattiseen siirtoon, lokiin, valmisteltuihin lausuntoihin, tapahtumiin ja jakamiseen. Paketti käyttää koodien ensisijaista lähestymistapaa käyttämällä rakenteita ja muita sisäänrakennettuja tietotyyppejä.

Suorita tämä päätekomento työhakemistossasi lisätäksesi GORM-paketin projektisi riippuvuuksiin:

mennä hanki gorm.io/gorm\n

Tarvitset tietokantaohjaimen toimiaksesi GORM-paketin kanssa. GORM tarjoaa tietokantaohjaimia suosittuihin tietokantajärjestelmiin. Asenna GORM suorittamalla tämä komento työhakemistossasi Postgres kuljettaja:

mennä hanki gorm.io/driver/postgres\n

Postgresin yhdistäminen Goin käyttämällä GORMia

Tuo nämä paketit Go-tiedostoosi toimiaksesi ORM: n ja tietokantaohjaimen kanssa. Tulet käyttämään Hirsi paketti kirjaamaan virheet konsoliisi ja fmt paketti tulostettavaksi.

tuonti (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "Hirsi"\n)\n

Tarvitset yhteysmerkkijonon muodostaaksesi yhteyden Postgres-tietokanta juoksuympäristössä. Voit käyttää rakennetta mallina kentille, jotka muodostavat yhteysmerkkijonon. Rakenteen käyttäminen helpottaa eri arvojen muuttamista ja testaamista, erityisesti riippuvuusinjektiotapauksissa.

Tässä on esimerkkirakennemalli kentille, jotka muodostavat yhteysmerkkijonon:

tyyppi Konfig struct {\n Isäntä merkkijono\n Portti merkkijono\n Salasana merkkijono\n Käyttäjä merkkijono\n DBName merkkijono\n SSLMode merkkijono\n}\n

Alla on tyypillinen toiminto tietokantayhteydellesi. Se palauttaa yhteysesiintymän ja virheilmoituksen yhteyden tilasta riippuen.

funcUusi yhteys()(*gorm. DB, virhe) {\n palata db, nolla\n}\n

Voit luoda yhteysrakennemallin ja täyttää kentät Postgres-tietokannan arvoilla.

 kokoonpanot := Asetukset{\n Isäntä: "tietokanta_isäntä",\n Portti: "tietokanta_portti",\n Salasana: "tietokanta_salasana",\n Käyttäjä: "tietokanta_käyttäjä",\n DBName: "tietokannan nimi",\n SSLM-tila: "väärä",\n }\n dsn := fmt. Sprintf("isäntä=%s portti=%s käyttäjä=%s salasana=%s dbname=%s sslmode=%s", kokoonpanot. Isäntä, kokoonpanot. Portti, kokoonpanot. Käyttäjä, kokoonpanot. Salasana, asetukset. DBName, kokoonpanot. SSLMode)\n

The dsn muuttuja käyttää Sprintf muotoilumenetelmä ja Siirry merkkijonomuotoilun verbeille ketjuttaaksesi kentät Konfig struct ja määritä Postgres-yhteysmerkkijono.

Voit avata tietokantayhteyden GORM: n kanssa käyttämällä Avata menetelmä. The Avata menetelmä ottaa avoimen yhteyden tietokantaohjaimesta ja luettelon valinnaisista kokoonpanoista Konfig GORM-paketin tyyppi. Se palauttaa yhteysesiintymän ja valinnaisen virheilmoituksen.

 db, err := gorm. Avaa (postgres. Avaa (dsn), &gorm. Config{})\n jos virhe! = nolla {\n palata db, err\n }\n

Pingaus tietokannasta yhteyden tilan tarkistamiseksi

Voit tarkistaa tietokannan ping-kunnon/online-tilan funktiolla, joka palauttaa loogisen tuloksen tai virheilmoituksen, jos tietokantayhteys on virheellinen.

funcPingDb()(bool, virhe) {\n \n palatatotta, nolla\n}\n

Sinun on luotava uusi yhteysesiintymä, jotta voit pingata tietokannan. Tässä on esimerkki, jossa käytetään Uusi yhteys toiminto yhteysesiintymän luomiseksi:

 connectionInstance, err := NewConnection()\n jos virhe! = nolla {\n loki. Fatalf("Tietokantayhteys epäonnistui %v", err. Virhe())\n }\n

Kun olet hankkinut yhteysesiintymän, luo tietokantaesiintymä DB yhteyden menetelmä.

 dbConnection, err := connectionInstance. DB()\n jos virhe! = nolla {\n palataväärä, err\n } \n

Voit pingata tietokantaan Ping tietokannan ilmentymän menetelmä. The Ping menetelmä palauttaa kaikki virheet tai nolla jos yhteys onnistui.

\n err = dbConnection. Ping()\n jos virhe! = nolla {\n palataväärä, virhe\n } muu {\n \n fmt. Println("Yhteys onnistui")\n }\n

Onnistuneen ajon tuloksena pitäisi olla seuraavanlainen tulos:

Voit käyttää tietokanta/sql-pakettia SQL-tietokannan kanssa työskentelemiseen Gossa

The tietokanta/sql Paketti on laajennettavissa, ja koska useimmat Go-tietokantapaketit ja ajurit laajentavat pakettia, voit käyttää pakettia projekteissasi ORM: iden valitsemisen sijaan.

GORM tarjoaa myös SQL-rakennustyökalun raaka-SQL: n rakentamiseen, mikä on hyödyllistä ei-tuetuissa toimissa.