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) Rollback() error {
  13. if consts.ParamDebug {
  14. err := this.tx.Rollback()
  15. log("[TX] TRANSACTION END (Rollback)", this.s, nil, true)
  16. return err
  17. }
  18. return this.tx.Rollback()
  19. }
  20. func (this *Tx) Commit() error {
  21. if consts.ParamDebug {
  22. err := this.tx.Commit()
  23. log("[TX] TRANSACTION END (Commit)", this.s, err, true)
  24. return err
  25. }
  26. return this.tx.Commit()
  27. }
  28. func (this *Tx) Exec(query string, args ...interface{}) (sql.Result, error) {
  29. if consts.ParamDebug {
  30. s := time.Now()
  31. r, e := this.tx.Exec(query, args...)
  32. log("[TX] "+query, s, e, true)
  33. return r, e
  34. }
  35. return this.tx.Exec(query, args...)
  36. }
  37. func (this *Tx) QueryRow(query string, args ...interface{}) *sql.Row {
  38. if consts.ParamDebug {
  39. s := time.Now()
  40. r := this.tx.QueryRow(query, args...)
  41. log("[TX] "+query, s, nil, true)
  42. return r
  43. }
  44. return this.tx.QueryRow(query, args...)
  45. }
  46. func (this *Tx) Query(query string, args ...interface{}) (*sql.Rows, error) {
  47. if consts.ParamDebug {
  48. s := time.Now()
  49. r, e := this.tx.Query(query, args...)
  50. log("[TX] "+query, s, e, true)
  51. return r, e
  52. }
  53. return this.tx.Query(query, args...)
  54. }