Closure

闭包--事务化插入数据

published on
背景 将队列中的数据持久化到数据库中时,不能每来一条数据就一次数据插入,肯定要批量插入。 实现 import "database/sql" func beTransaction(db *sql.DB, stmtStr string, n int) (func(...interface{}) error, func() error) { i := 1 tx, _ := db.Begin() txstmt, _ := tx.Prepare(stmtStr) return func(args ...interface{}) error { var err error _, err = txstmt.Exec(args...) if err != nil { return err } i++ if i > n { err = tx.Commit() if err != nil { return err } i = 1 tx, _ = db. Read More...