xugu_tranx.go 556 B

123456789101112131415161718192021222324252627282930313233343536
  1. package xugu
  2. import "errors"
  3. type xuguTx struct {
  4. tconn *xuguConn
  5. }
  6. func (tx *xuguTx) Commit() error {
  7. tx.tconn.mu.Lock()
  8. defer tx.tconn.mu.Unlock()
  9. if tx.tconn == nil {
  10. return errors.New("invalid connection")
  11. }
  12. _, err := tx.tconn.exec("commit;", nil)
  13. if err != nil {
  14. return err
  15. }
  16. return nil
  17. }
  18. func (tx *xuguTx) Rollback() error {
  19. tx.tconn.mu.Lock()
  20. defer tx.tconn.mu.Unlock()
  21. if tx.tconn == nil {
  22. return errors.New("invalid connection")
  23. }
  24. _, err := tx.tconn.exec("rollback;", nil)
  25. if err != nil {
  26. return err
  27. }
  28. return err
  29. }