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:
go get -u gorm.io/driver/mysql
Kemudian, gunakan kode berikut untuk membuat koneksi ke database MySQL:
package main
import (
"gorm.io/driver/mysql"
"gorm.io/gorm"
"log"
)
func main() {
dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
log.Fatal("Gagal koneksi ke database: ", err)
}
log.Println("Berhasil terhubung ke MySQL!")
}
Unit Test untuk Koneksi MySQL
Buat file mysql_test.go
dan tambahkan kode berikut:
package main
import (
"testing"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
func TestMySQLConnection(t *testing.T) {
dsn := "user:password@tcp(127.0.0.1:3306)/dbname?charset=utf8mb4&parseTime=True&loc=Local"
db, err := gorm.Open(mysql.Open(dsn), &gorm.Config{})
if err != nil {
t.Fatalf("Gagal koneksi ke MySQL: %v", err)
}
t.Log("Berhasil terhubung ke MySQL!")
}
Menggunakan Custom Driver dengan Koneksi yang Sudah Ada
Jika Anda sudah memiliki koneksi database menggunakan sql.DB
, gunakan kode berikut:
import (
"database/sql"
"gorm.io/driver/mysql"
"gorm.io/gorm"
)
dbSQL, _ := sql.Open("mysql", "user:password@tcp(127.0.0.1:3306)/dbname")
db, _ := gorm.Open(mysql.New(mysql.Config{
Conn: dbSQL,
}), &gorm.Config{})
Menghubungkan GORM ke PostgreSQL
Instal driver PostgreSQL:
go get -u gorm.io/driver/postgres
Gunakan kode berikut untuk koneksi:
dsn := "host=localhost user=postgres password=secret dbname=mydb port=5432 sslmode=disable"
db, err := gorm.Open(postgres.Open(dsn), &gorm.Config{})
Menghubungkan GORM ke SQLite
Instal driver SQLite:
go get -u gorm.io/driver/sqlite
Gunakan kode berikut:
db, err := gorm.Open(sqlite.Open("test.db"), &gorm.Config{})
Menghubungkan GORM ke SQL Server
Instal driver SQL Server:
go get -u gorm.io/driver/sqlserver
Gunakan kode berikut:
dsn := "sqlserver://username:password@localhost:1433?database=testdb"
db, 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
:
// 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:
sqlDB, err := db.DB()
if err != nil {
log.Fatal(err)
}
sqlDB.SetMaxOpenConns(10)
sqlDB.SetMaxIdleConns(5)
sqlDB.SetConnMaxLifetime(time.Hour)
Dengan ini, kita bisa mengoptimalkan performa database dalam aplikasi Golang kita.
Untuk tutorial lainnya tentang Golang, silakan kunjungi:
Artikel Terhangat
14 Menghapus (Delete) Data Gorm Library
03 Mar 2025
13 Advanced Update Data Gorm Library
03 Mar 2025
11 Update Data GORM Library
03 Mar 2025
08 Advanced Query dengan GORM di Golang
03 Mar 2025

14 Menghapus (Delete) Data Gorm Library

13 Advanced Update Data Gorm Library

11 Update Data GORM Library
