Постгрес Голанг

Postgres Golang



Често називан Голанг, Го је програмски језик отвореног кода, компајлиран и статички откуцан који креира Гоогле. Направљен је да буде лак за разумевање, брз, јасан и са високим перформансама.

ПостгреСКЛ, који се често једноставно назива Постгрес, је моћан систем базе података отвореног кода за објектно релацију. Са више од 30 година активног развоја, стекао је снажну репутацију због своје робусности, напредних карактеристика и значајне усклађености са стандардима.

Дизајниран је да се носи са великим оптерећењима, од појединачних машина до складишта података или веб сервиса са много истовремених корисника. Пружа трансакциони интегритет и издржљивост и подржава различите напредне типове података и моћан, флексибилан језик за манипулацију подацима.







Овај водич нас учи како да конфигуришемо и повежемо ПостгреСКЛ сервер са Го апликацијом.



Захтеви:

Иди програмски језик – Обезбеђује да је Го компајлер инсталиран на вашој машини.



ПостгреСКЛ база података – Такође морате да имате инсталиран ПостгреСКЛ. Можете га инсталирати директно на машину или користити Доцкер контејнер за једноставније подешавање.





Развојни алати – Интегрисано развојно окружење (ИДЕ) које подржава Го као Висуал Студио Цоде, ГоЛанд, итд.

Основно познавање СКЛ-а и Го – Да бисте остварили интеракцију са ПостгреСКЛ базом података, морате разумети СКЛ и различите упите које треба да извршите. Такође вам је потребно основно разумевање језика Го.



Пошто су наведени услови испуњени, можемо прећи на следеће кораке.

Подешавање пројекта

Почнимо са постављањем структуре директоријума пројекта. Креирајте главни директоријум где треба да ускладиштите изворни код пројекта.

$ мкдир голанг_постгрес

Идите у директоријум и иницијализујте нови Го модул.

$ цд голанг_постгрес && иди мод инит маин

Инсталирајте потребне драјвере

Да бисмо остварили интеракцију са ПостгреСКЛ базом података, потребан нам је ПостгреСКЛ драјвер за програмски језик Го.

За овај водич користимо пк драјвер који нуди широку лепезу функција за рад са ПостгреСКЛ базом података.

Можете га инсталирати тако што ћете покренути следећу команду:

идите на гитхуб.цом / либ / пк

Креирајте базу података

Следећи корак је креирање нове ПостгреСКЛ базе података. Опет, ово можемо да урадимо у љусци ПостгреСКЛ.

$ пскл -ИН постгрес

Ова команда од вас тражи лозинку за постгрес. Када се пријавите, покрените команду „креирај базу података“ да бисте иницијализовали нову базу података:

постгрес=# креирај базу података голанг;
ЦРЕАТЕ ДАТАБАСЕ

Дата команда креира нову базу података под називом „голанг“. Слободно замените име базе података жељеним именом.

Затим можете да проверите да ли је база података успешно креирана тако што ћете се повезати на њу.

постгрес=# \ц голанг;
Сада сте повезани са базом података 'голанг' као корисник 'постгрес'.

Затим поставите табелу у коју желите да ускладиштите податке. За овај водич креирамо једноставну табелу која чува информације о сесији.

ЦРЕАТЕ ТАБЛЕ дб_цлиентс (
ид СЕРИЈСКИ ПРИМАРНИ КЉУЧ,
име ВАРЦХАР(100) НОТ НУЛЛ,
сессион_тиме ТИМЕСТАМП НОТ НУЛЛ,
број_упита ИНТ ДЕФАУЛТ 0,
ацтиве_стате БООЛЕАН ДЕФАУЛТ ФАЛСЕ
);

Дати упит треба да креира нову табелу под називом „дб_цлиентс“ која чува информације о клијентима који су пријављени на дати сервер базе података.

Повежите апликацију Го са ПостгреСКЛ-ом

Када поставимо базу података и табелу базе података, можемо наставити и научити како да повежемо нашу Го апликацију са ПостгреСКЛ сервером.

Започните креирањем „маин.го“ датотеке у корену вашег пројекта:

$ додирнути маин.го

Затим уредите датотеку помоћу уређивача текста по избору:

$ јер маин.го

У датотеци „маин.го“ додајте изворни код као што је приказано у наставку:

пакет главни

увоз (
'база података/скл'
'фмт'
'Пријава'

_ 'гитхуб.цом/либ/пк'
)

фунц маин ( ) {
цоннСтр := 'постгрес://постгрес:пассворд@лоцалхост/голанг?сслмоде=дисабле'
дб, ерр := скл.Опен ( 'постгрес' , цоннСтр )
ако ерр ! = нула {
лог.Фатал ( ерр )
}

ако ерр = дб.Пинг ( ) ; ерр ! = нула {
лог.Фатал ( ерр )
}

фмт.Принтлн ( „Повезано са базом података“ )
}

У претходном коду почињемо са увозом потребних модула. Затим дефинишемо главну функцију. Коначно, у главној функцији, дефинишемо низ везе који нам омогућава да наведемо циљни хост, корисника базе података, лозинку базе података и стварну циљну базу података.

Модул подржава следеће параметре у низу везе:

  • дбнаме – Име базе података на коју се треба повезати.
  • корисник – корисник за који се треба пријавити.
  • лозинка – лозинка корисника.
  • хост – хост на који се треба повезати. Вредности које почињу са „/“ су за утичнице Уник домена (подразумевано је лоцалхост).
  • порт – Порт за повезивање (подразумевано је 5432).
  • сслмоде – Да ли да користите ССЛ или не (подразумевано је захтевано; ово није подразумевано за либпк).
  • фаллбацк_апплицатион_наме – Назив_апликације на који ћете се вратити ако није наведен.
  • цоннецт_тимеоут – Максимално чекање на везу у секундама. Нула или неодређено значи чекати неограничено.
  • сслцерт – Локација датотеке сертификата. Датотека мора да садржи податке кодиране ПЕМ-ом.
  • сслкеи – Локација датотеке кључа. Датотека мора да садржи податке кодиране ПЕМ-ом.
  • сслроотцерт – Локација датотеке роот сертификата. Датотека мора да садржи податке кодиране ПЕМ-ом.

Својства циљне везе можете да конфигуришете по потреби. Да бисте конфигурисали ССЛ и прихваћене параметре ССЛМоде, погледајте наш водич 5Ф799Д8Б4ЕБ34ЕЕЦ1432ЕФЕ644БЦ89А0ФА2Ф17Ц9 .

Када будете задовољни својствима везе, можете покренути претходни код да бисте тестирали да ли је веза успостављена.

иди трчи .\маин.го

Након повезивања, требало би да добијете следећи излаз:

Повезано са базом података

ПостгреСКЛ Убаците податке у табелу

Следећи корак је да убаците узорке података у табелу коју смо креирали раније. То можемо урадити тако што ћемо дефинисати упите за уметање као литерал низа, а затим користити функцију дб.Екец() за покретање циљног упита.

Код је следећи:

---
инсертСтатемент := `ИНСЕРТ ИНТО дб_цлиентс (име, време_сесије, број_упита, активно_стање)
ВРЕДНОСТИ
('пскл', '2023-05-26 10:15:00', 10, истина),
('датагрип', '2023-05-26 09:30:00', 5, истина),
('беавер', '2023-05-26 11:00:00', 20, истина),
('воркбенцх', '2023-05-26 14:45:00', 15, фалсе),
('ремоте', '2023-05-26 13:20:00', 8, истина);`

_, ерр = дб.Екец(инсертСтатемент)
ако грешка != нил {
лог.Фатал(ерр)
}

Ако покренете претходни код, он би требало да убаци наведене записе у циљну табелу.

ПостгреСКЛ подаци упита

Да бисмо поставили упит за редове из табеле, можемо дефинисати наредбу селецт као стринг и користити дб.Куери() да бисмо га покренули. Можемо итерирати по редовима табеле помоћу функције Нект() и одштампати их као што је приказано у наставку:

ровс, ерр := дб.Куери ( „СЕЛЕЦТ * ФРОМ дб_цлиентс“ )
ако ерр ! = нула {
лог.Фатал ( ерр )
}
одложити редове.Затвори ( )

за редови.Даље ( ) {
био ид инт
стринг имена вар
вар сессионТиме тиме.Тиме
вар нумберОфКуериес инт
вар ацтивеСтате боол

ерр := ровс.Сцан ( & ид , & име, & сессионТиме, & нумберОфКуериес, & ацтивеСтате )
ако ерр ! = нула {
лог.Фатал ( ерр )
}

фмт.Принтф ( „ИД: %д, име: %с, време сесије: %с, број упита: %д, активно стање: %т ' , ид , име, сессионТиме, нумберОфКуериес, ацтивеСтате )
}

ако ерр = ровс.Ерр ( ) ; ерр ! = нула {
лог.Фатал ( ерр )
}

Када покренемо претходни код, требало би да одштампа све редове из табеле дб_цлиентс као што је приказано у следећем примеру излаза:

То је то!

Закључак

Истражили смо како можемо да користимо пк пакет за повезивање и испитивање ПостгреСКЛ базе података користећи Голанг.