Advertisement
Guest User

Example model engine without ORM

a guest
Jan 29th, 2020
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Go 0.96 KB | None | 0 0
  1. package model
  2.  
  3. import (
  4.     "database/sql"
  5.     "fmt"
  6. )
  7.  
  8. var (
  9.     db *sql.DB
  10. )
  11.  
  12. // getEngine initializes the db client and returns it
  13. func getEngine() (db *sql.DB, err error) {
  14.     // TODO make this variables come from global config
  15.     port := 3306
  16.     user := "test"
  17.     password := "test"
  18.     host := "127.0.0.1"
  19.     dbname := "test"
  20.  
  21.     // Define datasource with all the params
  22.     dataSourceName := fmt.Sprintf("%s:%s@(%s:%d)/%s?parseTime=true", user,
  23.         password, host, port, dbname)
  24.     // Initialize sql object
  25.     db, err = sql.Open("mysql", dataSourceName)
  26.     if err != nil {
  27.         return nil, err
  28.     }
  29.     return db, err
  30. }
  31.  
  32. // SetEngine Sets the DB client
  33. func SetEngine() (err error) {
  34.     db, err = getEngine()
  35.     if err != nil {
  36.         return err
  37.     }
  38.     return nil
  39. }
  40.  
  41. // NewEngine initializes the database engine of the service
  42. func NewEngine() (err error) {
  43.     err = SetEngine()
  44.     if err != nil {
  45.         return err
  46.     }
  47.  
  48.     // TODO ping database, make sure to return error if fail.
  49.     return nil
  50. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement