Close

gorm

Grom

Gorm 은 글을 작성할때를 기준으로 Go로 만들어진 ORM 중 가장 많은 Star 를 받은 오픈소스 패키지 입니다.

github repository: https://github.com/jinzhu/gorm
gorm guides: http://jinzhu.me/gorm/
godoc reference: https://godoc.org/github.com/jinzhu/gorm
gitter: https://gitter.im/jinzhu/gorm

기본적인 Gorm의 사용법은 다음과 같습니다.

// main.go
package main()

import (
    "fmt"
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres"
    // "github.com/jinzhu/gorm/dialects/mysql"
    // "github.com/jinzhu/gorm/dialects/sqlite"
    // "github.com/jinzhu/gorm/dialects/mssql"
)

func main() {
    // DB Open
    db, err := grom.Open("postgres", dbConnString())
    if err != nil {
        fmt.Println(err)
    }

    // DB Close
    defer db.Close()
}

// Make dbConnection String(return string)
func dbConnString() (dbConnString string){
    dbConnString = fmt.Sprintf("user=%s password=%s host=%s port=%s dbname=%s sslmode=disable",
        db_user, db_pwd, db_host, db_port, db_name, // Database Info
    )
    return
}

앞선 방법으로 개발을 진행할시, Database Connection이 필요한 함수마다 데이터베이스 연결을 해줘야 한다는점에서 코드에서 비 효율적인 중복이 발생하게 됩니다.
이러한 방법을 해결하기 위해 Database에 대한 연결 정보를 가진 패키지를 생성하여 필요시마다 호출하여 사용하는 방법이 필요합니다.

예를 들어, 다음 코드와 같이 db 패키지를 생성하게 되면 각각 필요시마다 import “path/db” 로 호출하여 해당 패키지의 변수에 저장되어있는 연결 되어 있는 gorm 변수를 가져와 ‘db.Conn.REFERENCE’ 형식으로 사용이 가능합니다.

package db // 전역 호출을 위한 패키지

import (
    "github.com/jinzhu/gorm"
    _ "github.com/jinzhu/gorm/dialects/postgres"
)

var (
    Conn *gorm.DB
)

func Connect(dbConn, dbConnString string) (*gorm.DB, error) {
    db, err := gorm.Open(dbConn, dbConnString)
    if err != nil {
        fmt.Println("DB Connection Fail")
        fmt.Println(err)
    } else {
        fmt.Println("DB(gorm) Connect Success")
        Conn = db
    }
    return db, err
}

func DisConnect() {
    Conn.Close()
}

Leave a Reply

avatar
  Subscribe  
Notify of
%d 블로거가 이것을 좋아합니다: