반응형
# DB 생성하는 함수
var xormDb *xorm.Engine
func ConfigureDatabase() *xorm.Engine {
var err error
dbConnection := config.Config.Database.ConnectionString
xormDb, err := xorm.NewEngine(Config.Database.Driver, dbConnection) //Create Engine
if err != nil {
panic(fmt.Errorf("Database open error: error: %s \n", err))
} else {
fmt.Println("DB connected: ", Config.Database.Connection) //DB 연결 성공
}
xormDb.SetMaxOpenConns(10) //데이터베이스에 열린 연결의 최대 수가 설정
xormDb.SetMaxIdleConns(5) //idle connection pool 의 최대 연결 수를 설정
xormDb.SetConnMaxLifetime(10 * time.Minute) //연결을 재사용할 수 있는 최대 시간을 설정
xormDb.ShowSQL(config.Config.Database.ShowSql)
//로그 수준이 INFO보다 클 경우 로거에서 SQL 문인지 여부
xormDb.Logger().SetLevel(core.LOG_INFO) //로거 레벨 설정
return xormDb
}
- config.json에 있는
config.Config.Database.ConnectionString
안에 값을 가져온다. root:@tcp(hostname:포트번호)/study?charset=utf8
으로 값이 들어온다.
config에 Database구조체를 만들었다
Database struct {
Driver string
User string
Connection string
ConnectionString string
}
# main.go 추가내용
import (
_ "github.com/go-sql-driver/mysql"
"github.com/go-xorm/xorm"
)
func main() {
xorm := middleware.ConfigureDatabase() //middleware안에 있는 ConfigureDatabase함수 불러오기
xorm.Close() //main이 종료되면 DB 접속을 닫는다.
}
- mysql를 import 하지 않아서 컴파일 에러가 났다 =>
github.com/go-sql-driver/mysql
# GitHub
https://github.com/YooGenie/study-service/issues/13
# 참고
https://pkg.go.dev/database/sql#DB.SetMaxOpenConns
반응형
'Study > Go 언어' 카테고리의 다른 글
[golang] jwt 토큰 생성 방법 (0) | 2022.07.08 |
---|---|
[golang] validator 패키지 사용방법 (0) | 2022.06.13 |
[golang] 배열을 string으로 변경하는 방법 (0) | 2022.05.09 |
[golang] sort 함수 사용하여 정렬하기 (0) | 2022.04.22 |
[golang] 맵(map) 공부하기 (0) | 2022.03.11 |