Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package controllers
- import (
- "database/sql"
- "fmt"
- "github.com/jmoiron/sqlx"
- _ "github.com/lib/pq"
- "github.com/revel/revel"
- )
- var (
- Db *sqlx.DB
- )
- func InitDB() {
- connstring := fmt.Sprintf("user=%s password='%s' dbname=%s sslmode=disable", "postgres", "postgres", "db_name")
- var err error
- Db, err = sqlx.Connect("postgres", connstring)
- if err != nil {
- revel.INFO.Println("DB Error", err)
- }
- revel.INFO.Println("DB Connected")
- }
- type SqlxController struct {
- *revel.Controller
- Tx *sqlx.Tx
- }
- func (c *SqlxController) Begin() revel.Result {
- tx, err := Db.Beginx()
- if err != nil {
- panic(err)
- }
- c.Tx = tx
- return nil
- }
- func (c *SqlxController) Commit() revel.Result {
- if c.Tx == nil {
- return nil
- }
- if err := c.Tx.Commit(); err != nil && err != sql.ErrTxDone {
- panic(err)
- }
- c.Tx = nil
- return nil
- }
- func (c *SqlxController) Rollback() revel.Result {
- if c.Tx == nil {
- return nil
- }
- if err := c.Tx.Rollback(); err != nil && err != sql.ErrTxDone {
- panic(err)
- }
- c.Tx = nil
- return nil
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement