Bralci, kot ste vi, pomagajo podpirati MUO. Ko opravite nakup prek povezav na našem spletnem mestu, lahko zaslužimo partnersko provizijo. Preberi več.

Postgres je ena izmed priljubljenih baz podatkov SQL zaradi svojih številnih funkcij in enostavne uporabe. Postgres je združljiv s standardom ACID s funkcijami, kot so nadzor sočasnosti več različic, asinhrono podvajanje, ugnezdene transakcije in beleženje vnaprejšnjega pisanja. Skupaj s številnimi drugimi je zaradi teh funkcij Postgres sistem za upravljanje baze podatkov SQL.

Ekosistem Go je dom številnih paketov za interakcijo z različnimi DBMS, vključno s Postgres. Go ponuja vgrajeno baza podatkov/sql paket za delo z bazami podatkov SQL z uporabo gonilnikov baz podatkov. Z uporabo podatkovnih struktur Go lahko integrirate priljubljene ORM-je tretjih oseb, kot je GORM, za enostavno interakcijo z vašo bazo podatkov.

Kako začeti z GORM in Postgres

Paket GORM je eden najbolj priljubljenih ORM-jev v ekosistemu Go, ker je razvijalcem prijazen, bogat s funkcijami in temelji na the baza podatkov/sql paket.

GORM zagotavlja funkcionalnost za samodejne migracije, beleženje, pripravljene izjave, transakcije in razčlenjevanje. Paket ima pristop najprej kode z uporabo struktur in drugih vgrajenih tipov podatkov.

Zaženite ta terminalski ukaz v svojem delovnem imeniku, da dodate paket GORM v odvisnosti vašega projekta:

pojdi pridobi gorm.io/gorm\n

Za delovanje paketa GORM boste potrebovali gonilnik baze podatkov. GORM nudi gonilnike baze podatkov za priljubljene DBMS. Zaženite ta ukaz v svojem delovnem imeniku, da namestite GORM Postgres voznik:

pojdi pridobi gorm.io/driver/postgres\n

Povezovanje Postgresa z Go z uporabo GORM

Uvozite te pakete v datoteko Go za delo z ORM in gonilnikom baze podatkov. Uporabili boste dnevnik paket za beleženje napak v vašo konzolo in fmt paket za tiskanje.

uvoz (\n "fmt"\n "gorm.io/driver/postgres"\n "gorm.io/gorm"\n "dnevnik"\n)\n

Potrebovali boste povezovalni niz za povezavo z vašim Baza podatkov Postgres v tekaškem okolju. Strukturo lahko uporabite kot model za polja, ki sestavljajo povezovalni niz. Uporaba strukture olajša spreminjanje in testiranje različnih vrednosti, zlasti v primerih vbrizgavanja odvisnosti.

Tukaj je primer modela strukture za polja, ki sestavljajo povezovalni niz:

vrsta Config struct {\n Gostitelj vrvica\n Vrata vrvica\n Geslo vrvica\n Uporabnik vrvica\n DBName vrvica\n SSLMode vrvica\n}\n

Spodaj je tipična funkcija za vašo povezavo z bazo podatkov. Vrne primerek povezave in napako, odvisno od stanja povezave.

funkNova povezava()(*gorm. DB, napaka) {\n vrnitev db, nič\n}\n

Ustvarite lahko model strukture povezave in izpolnite polja z vrednostmi v vaši zbirki podatkov Postgres.

 konfiguracije := Konfiguracija{\n Gostitelj: "database_Host",\n Vrata: "vrata_baze podatkov",\n Geslo: "geslo_baze podatkov",\n Uporabnik: "database_User",\n DBName: "ime_baze_podatkov",\n Način SSL: "false",\n }\n dsn := fmt. Sprintf("gostitelj=%s vrata=%s uporabnik=%s geslo=%s dbname=%s sslmode=%s", konfiguracije. Gostitelj, konfiguracije. Vrata, konfiguracije. Uporabnik, konfiguracije. Geslo, konfiguracije. DBName, konfiguracije. SSLMode)\n

The dsn spremenljivka uporablja Sprintf način oblikovanja in Glagoli za oblikovanje nizov za združevanje polj Config struct in nastavite povezovalni niz Postgres.

Povezavo z bazo podatkov z GORM lahko odprete z uporabo Odprto metoda. The Odprto metoda vzame odprto povezavo iz gonilnika baze podatkov in seznam izbirnih konfiguracij iz Config vrsto paketa GORM. Vrne primerek povezave in neobvezno napako.

 db, napaka := gorm. Odpri (postgres. Odpri (dsn), &gorm. Konfiguracija{})\n če napaka!= nič {\n vrnitev db, napaka\n }\n

Pinganje baze podatkov za preverjanje statusa povezave

Svojo bazo podatkov lahko pingate, da preverite stanje zdravja/spleta s funkcijo, ki vrne logični rezultat ali napako, če je povezava z bazo podatkov neveljavna.

funkPingDB()(bool, napaka) {\n \n vrnitevprav, nič\n}\n

Za pinganje baze podatkov boste morali ustvariti nov primerek povezave. Tukaj je primer uporabe Nova povezava funkcija za ustvarjanje primerka povezave:

 ConnectionInstance, err := NewConnection()\n če napaka!= nič {\n dnevnik. Fatalf ("Povezava z bazo podatkov ni uspela %v", napaka Napaka())\n }\n

Ko pridobite primerek povezave, ustvarite primerek baze podatkov z DB način povezave.

 dbConnection, err := primerek povezave. DB()\n če napaka!= nič {\n vrnitevlažno, napaka\n } \n

Bazo podatkov lahko pingate z Ping metoda primerka baze podatkov. The Ping metoda vrne morebitne napake oz nič če je bila povezava uspešna.

\n napaka = dbConnection. Ping()\n če napaka!= nič {\n vrnitevlažno, napaka\n } drugače {\n \n fmt. Println("Povezava je bila uspešna")\n }\n

Rezultat uspešnega izvajanja bi moral biti podoben temu:

Za delo z bazo podatkov SQL v Go lahko uporabite paket baze podatkov/sql

The baza podatkov/sql paket je razširljiv in ker večina paketov baze podatkov Go in gonilnikov razširi paket, lahko uporabite paket v svojih projektih, namesto da bi se odločili za ORM.

GORM ponuja tudi graditelj SQL za gradnjo surovega SQL, ki je v pomoč pri nepodprtih operacijah.