Pelajari cara menghubungkan GORM sebagai ORM di Golang ke berbagai database seperti MySQL, PostgreSQL, SQLite, SQL Server, dan MongoDB. Dilengkapi dengan contoh kode dan unit test.
GORM adalah salah satu library ORM (Object-Relational Mapping) yang paling populer di Golang. Dengan GORM, kita dapat berinteraksi dengan berbagai database secara lebih mudah dan efisien. Dalam artikel ini, kita akan membahas bagaimana cara menghubungkan GORM ke berbagai database seperti MySQL, PostgreSQL, SQLite, SQL Server, dan MongoDB dengan contoh kode yang lengkap.
Menghubungkan GORM ke MySQL
Untuk menghubungkan GORM ke MySQL, pastikan Anda sudah menginstal driver MySQL untuk Golang:
1go get -u gorm.io/driver/mysqlKemudian, gunakan kode berikut untuk membuat koneksi ke database MySQL:
1package main
2
3import (
4 "gorm.io/driver/mysql"
5 "gorm.io/gorm"
6 "log"
7)
8
9func main() {
10 dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
11 db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
12 if err != nil {
13 log.Fatal("Gagal koneksi ke database: ", err)
14 }
15 log.Println("Berhasil terhubung ke MySQL!")
16}Unit Test untuk Koneksi MySQL
Buat file mysql_test.go dan tambahkan kode berikut:
1package main
2
3import (
4 "testing"
5 "gorm.io/driver/mysql"
6 "gorm.io/gorm"
7)
8
9func TestMySQLConnection(t *testing.T) {
10 dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
11 db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
12 if err != nil {
13 t.Fatalf("Gagal koneksi ke MySQL: %v", err)
14 }
15 t.Log("Berhasil terhubung ke MySQL!")
16}Menggunakan Custom Driver dengan Koneksi yang Sudah Ada
Jika Anda sudah memiliki koneksi database menggunakan sql.DB, gunakan kode berikut:
1import (
2 "database/sql"
3 "gorm.io/driver/mysql"
4 "gorm.io/gorm"
5)
6
7dbSQL, _ := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
8db, _ := gorm.Open(mysql.New(mysql.Config{
9 Conn: dbSQL,
10}), &gorm.Config{})Menghubungkan GORM ke PostgreSQL
Instal driver PostgreSQL:
1go get -u gorm.io/driver/postgresGunakan kode berikut untuk koneksi:
1dsn := "host=localhost user=postgres password=secret dbname=mydb port=5432 sslmode=disable"
2db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})Menghubungkan GORM ke SQLite
Instal driver SQLite:
1go get -u gorm.io/driver/sqliteGunakan kode berikut:
1db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})Menghubungkan GORM ke SQL Server
Instal driver SQL Server:
1go get -u gorm.io/driver/sqlserverGunakan kode berikut:
1dsn := "sqlserver://username:password@localhost:1433?database=testdb"
2db, err := gorm.Open(sqlserver.Open(dsn), &gorm.Config{})Menghubungkan GORM ke MongoDB
Meskipun GORM tidak secara resmi mendukung MongoDB, kita bisa menggunakan library tambahan seperti gorm-mongo:
1// Placeholder untuk koneksi MongoDB karena GORM lebih cocok untuk SQL-based databases.6. Connection Pooling dalam GORM
Untuk mengatur connection pooling pada GORM, gunakan kode berikut:
1sqlDB, err := db.DB()
2if err != nil {
3 log.Fatal(err)
4}
5
6sqlDB.SetMaxOpenConns(10)
7sqlDB.SetMaxIdleConns(5)
8sqlDB.SetConnMaxLifetime(time.Hour)Dengan ini, kita bisa mengoptimalkan performa database dalam aplikasi Golang kita.
Untuk tutorial lainnya tentang Golang, silakan kunjungi: