필요한 패키지 설치
- mysql drivergo get -u github.com/go-sql-driver/mysql
저는 ORM 라이브러리로 GORM 을 사용하기 때문에 아래 두 패키지를 추가로 설치 하였습니다.
- gormgo get -u github.com/jinzhu/gorm- gorm mysql driver
go get -u github.com/jinzhu/gorm/dialects/mysql
Connection Pool 파일 생성
// hellogo/internal/databases/mysql.go package db import ( "os" // mysql driver _ "github.com/go-sql-driver/mysql" "github.com/jinzhu/gorm" // gorm mysql driver _ "github.com/jinzhu/gorm/dialects/mysql" ) // Connect DB func Connect() *gorm.DB { db, err := gorm.Open("mysql", "username:password@tcp(127.0.0.1)/dbname"?charset=utf8mb4&parseTime=True&loc=Local") if err != nil { // panic("failed to connect database") panic(err) } db.DB().SetMaxIdleConns(10) db.DB().SetMaxOpenConns(100) return db }
DBCP 사용하기
// hellogo/main.go package main import ( "log" db "hellogo/internal/databases" ) type User struct { Name string Email string } func main() { db := db.Connect() db.LogMode(true) user := &User{} if err := db.First(user).Error; err != nil { panic(err) } log.Println(user) }