package mysqlite import "log" type Tx struct { db *Db } func (d *Db) Begin() (*Tx, error) { err := d.Query("BEGIN").Exec() if err != nil { return nil, err } return &Tx{db: d}, nil } func (tx *Tx) Commit() error { return tx.Query("COMMIT").Exec() } func (tx *Tx) Rollback() error { return tx.Query("ROLLBACK").Exec() } func (tx *Tx) MustRollback() { err := tx.Rollback() if err != nil { log.Panicf("error doing rollback: %v", err) } } func (tx *Tx) Query(query string) *Query { return tx.db.Query(query) }