Pemrograman

03 Koneksi GORM ke Berbagai Database di Golang

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:

comments powered by Disqus

Topik Terhangat

pemrograman
152
jaringan
28
tips-dan-trik
27
tutorial
20
hardware
11
linux
4
kubernetes
1
trik-and-tips
1