如何设计数据库服务类

时间:2016-05-01 22:06:37

标签: postgresql go

我想创建一个接受sql连接的类,然后我可以编写方法来从我的数据库中返回数据。

func main() {
  db := dbConnect()
  defer db.Close()

  // pass the db to my dbservice.go somehow?
}

然后在我的处理程序(对于Web应用程序)中,我希望能够:

var userKey, err := dbService.getUserKey(123)

我只是创建一个像dbservice.go这样的文件,然后创建表示我的返回值的结构,然后执行:

func (mystruct *MyStruct) GetUserKey(id int64) (key string, err error) {
   //
}

另外,如何在我的main中将db传递给它,以便它可以使用数据库连接?

1 个答案:

答案 0 :(得分:0)

让服务有一个内部字段,该字段指向数据库并使用它。

type DBService struct {
    db *sql.DB
}

func (dbs *DBService) GetUserKey(id int64) (key string, err error)
    dbs.db.Query("SOMETHING")
    return
}

func NewService(db *sql.DB) *DBService { return &DBService{db: db} }