필요한 패키지 설치
- 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 파일 생성
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | // 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 사용하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | // 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) } |