txw.go 1.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. package sqlw
  2. import (
  3. "database/sql"
  4. _ "github.com/go-sql-driver/mysql"
  5. "time"
  6. "golang-fave/consts"
  7. )
  8. type Tx struct {
  9. tx *sql.Tx
  10. s time.Time
  11. }
  12. func (this *Tx) Commit() error {
  13. if consts.ParamDebug {
  14. err := this.tx.Commit()
  15. log("[TX] TRANSACTION END (Commit)", this.s, err, true)
  16. return err
  17. }
  18. return this.tx.Commit()
  19. }
  20. func (this *Tx) Exec(query string, args ...interface{}) (sql.Result, error) {
  21. if consts.ParamDebug {
  22. s := time.Now()
  23. r, e := this.tx.Exec(query, args...)
  24. log("[TX] "+query, s, e, true)
  25. return r, e
  26. }
  27. return this.tx.Exec(query, args...)
  28. }
  29. func (this *Tx) Query(query string, args ...interface{}) (*sql.Rows, error) {
  30. if consts.ParamDebug {
  31. s := time.Now()
  32. r, e := this.tx.Query(query, args...)
  33. log("[TX] "+query, s, e, true)
  34. return r, e
  35. }
  36. return this.tx.Query(query, args...)
  37. }
  38. func (this *Tx) QueryRow(query string, args ...interface{}) *sql.Row {
  39. if consts.ParamDebug {
  40. s := time.Now()
  41. r := this.tx.QueryRow(query, args...)
  42. log("[TX] "+query, s, nil, true)
  43. return r
  44. }
  45. return this.tx.QueryRow(query, args...)
  46. }
  47. func (this *Tx) Rollback() error {
  48. if consts.ParamDebug {
  49. err := this.tx.Rollback()
  50. log("[TX] TRANSACTION END (Rollback)", this.s, nil, true)
  51. return err
  52. }
  53. return this.tx.Rollback()
  54. }