Cara Menggunakan Basis Data SQL Apa Pun di Go
Dengan paket abstraksi database sederhana, menggunakan SQL dari Go lebih mudah dari yang kamu kira.
Database SQL menyimpan kumpulan data dalam baris dan kolom. kamu dapat mengambil dan memperbarui data dalam sistem manajemen basis data relasional (RDBMS) menggunakan bahasa SQL. Dari sekian banyak database SQL yang tersedia, yang paling populer adalah MySQL, PostgreSQL, Microsoft SQL Server, dan SQLite.
Fungsionalitas untuk berinteraksi dengan database di Go ada dalam paket database/sql, bagian dari library stkamur.
Paket database/sql berinteraksi dengan database SQL menggunakan driver. kamu dapat mengimpor paket driver yang sesuai untuk RDBMS kamu dan menggunakannya untuk berinteraksi dengan database.
Memulai Database SQL di Go
Paket database/sql adalah antarmuka umum untuk database relasional. Untuk bekerja dengan server database tertentu, kamu harus menggunakan salah satu dari banyak driver yang tersedia.
Untungnya, kamu tidak perlu khawatir tentang implementasi khusus di luar driver. Paket database/sql menangani operasi database secara independen dari server yang kamu sambungkan.
Beberapa driver database Go yang paling populer adalah:
Driver Go-SQL (MySQL)
PQ (PostgreSQL)
Go-SQLite3 (SQLite)
MSSQLDB (Microsoft SQL Server)
kamu dapat menggunakan daftar driver LibHunt untuk menemukan padanan untuk tipe database lainnya . Daftar ini juga menunjukkan popularitas relatif dari setiap sistem basis data:
Menginstal dan Mengimpor Driver Database Go
Setelah kamu membuat ruang kerja Go dan menginisialisasi file modul Go, instal driver yang cocok dengan sistem database kamu. Misalnya, jalankan salah satu perintah berikut di direktori ruang kerja kamu untuk menginstal driver MySQL atau SQLite:
go get -u github.com/go-sql-driver/mysql
go get github.com/mattn/go-sqlite3
Setelah kamu menginstal driver kamu, impor untuk efek samping dengan awalan garis bawah sebelum paket. Misalnya, untuk mengimpor driver MySQL di samping paket database/sql:
import (
"database/sql"
_ "github.com/go-sql-driver/mysql"
)
Dengan mengimpor paket driver untuk efek samping, kamu dapat menggunakannya untuk menyambung ke, dan menjalankan operasi pada, database.
Menghubungkan ke Database SQL Dengan Go
Setelah mengimpor driver database, kamu dapat membuat koneksi database menggunakan metode Open dari paket database/sql . Metode ini mengambil nama dan jalur driver ke database (untuk SQLite) atau string koneksi (untuk MySQL). Misalnya, gunakan salah satu dari berikut ini:
db, err := sql.Open("sqlite3", "models/testdb.db") // SQLite
db, err := sql.Open("mysql", "user:password@/dbname") // MySQL
Setelah kamu mencoba membuka koneksi, ingatlah untuk memeriksa kesalahan:
if err != nil {
log.Fatalln(err)
}
Bergantung pada sistem database kamu, metode Open dapat mengembalikan kesalahan jika database tidak ada. Setelah kamu terhubung ke database, kamu bisa menjalankan kueri dan menyiapkan pernyataan menggunakan instance database yang dikembalikan oleh Open .
Menjalankan Perintah SQL
kamu dapat menjalankan perintah SQL menggunakan metode Siapkan instance database kamu. Metode Siapkan menerima perintah SQL dan mengembalikan pernyataan yang disiapkan untuk dieksekusi bersama objek kesalahan. Misalnya, jika kamu ingin membuat tabel baru:
command, err := db.Prepare("CREATE TABLE IF NOT EXISTS login(username TEXT, password TEXT)")
Pernyataan di atas membuat tabel bernama login , jika belum ada. Tabel baru memiliki field bernama username dan password , masing-masing bertipe TEXT.
Jika kamu memasukkan nilai dari program ke dalam kueri, kamu dapat menggunakan notasi tkamu tanya (?) untuk menunjukkan placeholder dan kemudian meneruskan parameter saat mengeksekusi pernyataan.
command, err := db.Prepare("INSERT INTO login(username, password) values(?,?)")
Setelah kamu membuat pernyataan yang disiapkan, kamu dapat menjalankannya menggunakan metode Exec -nya. Metode ini memungkinkan kamu meneruskan nilai parameter dari program kamu:
exec, err := command.Exec(value1, Value2)
if err != nil {
return
}
Nilai pertama yang dikembalikan Exec() adalah hasil dari kueri SQL di database kamu. Dengan menggunakan hasil kueri ini, kamu dapat memeriksa jumlah baris yang terpengaruh atau ID yang terakhir dimasukkan:
affected, err := exec.RowsAffected()
if err != nil {
return
}
fmt.Println(affected)
id, err := exec.LastInsertId()
if err != nil {
return
}
fmt.Println(id)
Mengambil Hasil Kueri
Paket database/sql memungkinkan kamu menanyakan hasil database menggunakan metode Query dari instance database:
rows, err := db.Query("SELECT * FROM User")
if err != nil {
return
}
Metode Kueri mengembalikan struct Baris yang dapat kamu gunakan untuk bekerja dengan kumpulan hasil kamu. Misalnya, kamu dapat menggunakan metode Berikutnya dari instance baris kamu untuk mengulanginya dan bekerja dengan masing-masing baris:
var username, password string
for rows.Next() {
err := rows.Scan(&username, &password)
if err != nil {
log.Fatalln(err)
}
fmt.Println(username, password)
}
Pada contoh di atas, dua variabel string— nama pengguna dan kata sandi —mewakili setiap nilai kolom. Metode Scan mendekode baris saat ini ke dalam variabel yang sesuai.
Database SQL Selalu Berguna
Menggunakan database di Go sangatlah mudah dengan paket database/sql. kamu dapat menggunakannya untuk membuat kueri dan menjalankan perintah SQL di Go dengan mudah.
Database SQL adalah inti dari banyak aplikasi, terutama yang berhubungan dengan kumpulan data yang besar atau kompleks. kamu dapat menggunakan database seperti database SQLite dalam memori untuk proyek sederhana kamu seperti web scraping, dan membangun bot.
Pengetahuan yang tepat tentang SQL dan sistem manajemen basis data sangat penting untuk menggunakannya dalam program kamu secara efisien. Namun, jika kamu memilih untuk tidak mempelajari SQL, kamu dapat mempelajari cara menggunakan ORM untuk berinteraksi dengan database SQL di Go.
Posting Komentar untuk "Cara Menggunakan Basis Data SQL Apa Pun di Go"