Postgres Golang

Postgres Golang



Sering disebut sebagai Golang, Go adalah bahasa pemrograman open-source, dikompilasi, dan diketik secara statis yang dibuat oleh Google. Ini dibuat agar mudah dipahami, cepat, jelas, dan berperforma tinggi.

PostgreSQL, sering hanya disebut sebagai Postgres, adalah sistem database objek-relasional sumber terbuka yang kuat. Dengan lebih dari 30 tahun pengembangan aktif, ia telah memperoleh reputasi yang kuat untuk ketangguhannya, fitur-fitur canggih, dan kepatuhan standar yang substansial.

Ini dirancang untuk menangani beban kerja yang luas, dari mesin tunggal hingga gudang data atau layanan web dengan banyak pengguna bersamaan. Ini memberikan integritas dan daya tahan transaksional dan mendukung berbagai tipe data tingkat lanjut dan bahasa manipulasi data yang kuat dan fleksibel.







Tutorial ini mengajarkan kita cara mengonfigurasi dan menghubungkan server PostgreSQL dengan aplikasi Go.



Persyaratan:

Pergi Bahasa Pemrograman – Ini memastikan bahwa kompiler Go diinstal pada mesin Anda.



Basis Data PostgreSQL – Anda juga perlu menginstal PostgreSQL. Anda dapat menginstalnya langsung di mesin Anda atau menggunakan wadah Docker untuk pengaturan yang lebih mudah.





Alat Pengembangan – Lingkungan Pengembangan Terpadu (IDE) yang mendukung Go seperti Visual Studio Code, GoLand, dll.

Pengetahuan Dasar tentang SQL dan Go – Untuk berinteraksi dengan database PostgreSQL, Anda harus memahami SQL dan berbagai kueri yang perlu Anda lakukan. Anda juga membutuhkan pemahaman dasar tentang bahasa Go.



Dengan persyaratan yang diberikan terpenuhi, kita dapat melanjutkan ke langkah-langkah berikut.

Pengaturan Proyek

Mari kita mulai dengan menyiapkan struktur direktori proyek kita. Buat direktori utama tempat Anda perlu menyimpan kode sumber proyek.

$ mkdir golang_postgres

Arahkan ke direktori dan inisialisasi modul Go baru.

$ CD golang_postgres && go mod init main

Instal Driver yang Diperlukan

Untuk berinteraksi dengan database PostgreSQL, kita memerlukan driver PostgreSQL untuk bahasa pemrograman Go.

Untuk tutorial ini, kami menggunakan driver pq yang menawarkan beragam fitur untuk bekerja dengan database PostgreSQL.

Anda dapat menginstalnya dengan menjalankan perintah berikut:

dapatkan github.com / lib / pq

Buat Basis Data

Langkah selanjutnya adalah membuat database PostgreSQL baru. Sekali lagi, kita bisa melakukan ini di shell PostgreSQL.

$ psql -DI DALAM postgres

Perintah ini meminta Anda memasukkan kata sandi postgres. Setelah masuk, jalankan perintah 'buat basis data' untuk menginisialisasi basis data baru:

postgres=# buat database golang;
BUAT DATABASE

Perintah yang diberikan membuat database baru yang disebut 'golang'. Jangan ragu untuk mengganti nama database dengan nama yang Anda inginkan.

Anda kemudian dapat memverifikasi bahwa database berhasil dibuat dengan menghubungkannya.

postgres=# \c golang;
Anda sekarang terhubung ke database 'golang' sebagai pengguna 'postgres'.

Selanjutnya, atur tabel tempat Anda ingin menyimpan data. Kami membuat tabel sederhana untuk tutorial ini yang menyimpan informasi sesi.

BUAT TABEL db_clients (
id KUNCI UTAMA SERIAL,
nama VARCHAR(100) BUKAN NULL,
session_time TIMESTAMP NOT NULL,
number_of_queries INT DEFAULT 0,
active_state BOOLEAN DEFAULT SALAH
);

Kueri yang diberikan harus membuat tabel baru yang disebut 'db_clients' yang menyimpan informasi tentang klien yang masuk ke server database tertentu.

Hubungkan Aplikasi Go dengan PostgreSQL

Setelah kita menyiapkan database dan tabel database, kita dapat melanjutkan dan mempelajari cara menghubungkan aplikasi Go kita dengan server PostgreSQL.

Mulailah dengan membuat file 'main.go' di root proyek Anda:

$ menyentuh main.go

Selanjutnya, edit file dengan editor teks pilihan Anda:

$ Karena main.go

Di file 'main.go', tambahkan kode sumber seperti yang ditunjukkan berikut ini:

paket utama

impor (
'database/sql'
'fmt'
'catatan'

_ 'github.com/lib/pq'
)

fungsi utama ( ) {
connStr := 'postgres://postgres:password@localhost/golang?sslmode=disable'
db, err := sql.Buka ( 'postgres' , connStr )
jika berbuat salah ! = nol {
log.Fatal ( berbuat salah )
}

jika err = db.Ping ( ) ; berbuat salah ! = nol {
log.Fatal ( berbuat salah )
}

fmt.Println ( 'Terhubung ke basis data' )
}

Pada kode sebelumnya, kita mulai dengan mengimpor modul yang dibutuhkan. Kami kemudian mendefinisikan fungsi utama. Terakhir, di fungsi utama, kita mendefinisikan string koneksi yang memungkinkan kita menentukan host target, pengguna database, kata sandi database, dan database target sebenarnya.

Modul ini mendukung parameter berikut dalam string koneksi:

  • dbname – Nama database yang akan dihubungkan.
  • pengguna – Pengguna untuk masuk sebagai.
  • kata sandi – Kata sandi pengguna.
  • host – Host yang akan dihubungkan. Nilai yang dimulai dengan “/” adalah untuk soket domain Unix (defaultnya adalah localhost).
  • port – Port yang akan diikat (standarnya adalah 5432).
  • sslmode – Apakah akan menggunakan SSL atau tidak (defaultnya adalah wajib; ini bukan default untuk libpq).
  • fallback_application_name – Application_name untuk digunakan kembali jika tidak disediakan.
  • connect_timeout – Waktu tunggu maksimum untuk koneksi dalam hitungan detik. Nol atau tidak ditentukan berarti menunggu tanpa batas waktu.
  • sslcert – Lokasi file sertifikat. File harus berisi data berenkode PEM.
  • sslkey – Lokasi file kunci. File harus berisi data berenkode PEM.
  • sslrootcert – Lokasi file sertifikat root. File harus berisi data berenkode PEM.

Anda dapat mengonfigurasi properti koneksi target seperlunya. Untuk mengonfigurasi SSL dan parameter SSLMode yang diterima, lihat tutorial kami di https://linuxhint.com/postgres-sslmode .

Setelah puas dengan properti koneksi, Anda dapat menjalankan kode sebelumnya untuk menguji apakah koneksi dibuat.

jalankan .\main.go

Setelah koneksi, Anda harus mendapatkan output berikut:

Terhubung ke basis data

PostgreSQL Memasukkan Data Ke Dalam Tabel

Langkah selanjutnya adalah memasukkan data sampel ke dalam tabel yang telah kita buat tadi. Kita dapat melakukan ini dengan mendefinisikan kueri penyisipan sebagai literal string, lalu menggunakan fungsi db.Exec() untuk menjalankan kueri target.

Kodenya adalah sebagai berikut:

---
insertStatement := `INSERT INTO db_clients (nama, session_time, number_of_queries, active_state)
NILAI
('psql', '26-05-2023 10:15:00', 10, benar),
('datagrip', '26-05-2023 09:30:00', 5, benar),
('dbeaver', '26-05-2023 11:00:00', 20, benar),
('meja kerja', '26-05-2023 14:45:00', 15, salah),
('jauh', '26-05-2023 13:20:00', 8, benar);`

_, err = db.Exec(insertStatement)
jika salah != nihil {
log.Fatal(err)
}

Jika Anda menjalankan kode sebelumnya, itu harus memasukkan catatan yang ditentukan ke dalam tabel target.

Data Kueri PostgreSQL

Untuk menanyakan baris dari tabel, kita dapat mendefinisikan pernyataan pilih sebagai string dan menggunakan db.Query() untuk menjalankannya. Kita dapat mengulangi baris tabel menggunakan fungsi Next() dan mencetaknya seperti yang ditunjukkan berikut ini:

baris, err := db.Query ( 'PILIH * DARI db_clients' )
jika berbuat salah ! = nol {
log.Fatal ( berbuat salah )
}
tunda baris.Tutup ( )

untuk baris.Berikutnya ( ) {
dulu pengenal int
string nama var
var sessionTime time.Time
var numberOfQueries int
var activeState bool

err := baris.Pindai ( & pengenal , & nama, & waktu sesi, & jumlahPermintaan, & status aktif )
jika berbuat salah ! = nol {
log.Fatal ( berbuat salah )
}

fmt.Cetakf ( 'ID: %d, Nama: %s, Waktu Sesi: %s, Jumlah Kueri: %d, Status Aktif: %t \N ' , pengenal , nama, sessionTime, numberOfQueries, activeState )
}

jika err = baris.Err ( ) ; berbuat salah ! = nol {
log.Fatal ( berbuat salah )
}

Setelah kita menjalankan kode sebelumnya, kode tersebut akan mencetak semua baris dari tabel db_clients seperti yang ditunjukkan pada contoh output berikut:

Itu dia!

Kesimpulan

Kami menjelajahi bagaimana kami dapat menggunakan paket pq untuk menghubungkan dan menanyakan database PostgreSQL menggunakan Golang.