func (db *DB) BeginTx(ctx context.Context, opts *sql.TxOptions) (*sql.Tx, error) {
	return db.Master().BeginTx(ctx, opts)
}
BeginTx starts a transaction with the provided context on the master.

The provided TxOptions is optional and may be nil if defaults should be used.
If a non-default isolation level is used that the driver doesn't support,
an error will be returned.
package nap
import (
	"context"
	"database/sql"
	"database/sql/driver"
	"strings"
	"sync/atomic"
	"time"
)
type DB struct {
	pdbs  []*sql.DB  
	count uint64     
}
func Open(driverName, dataSourceNames string) (*DB, error) {
	conns := strings.Split(dataSourceNames, ";")
	db := &DB{pdbs: make([]*sql.DB, len(conns))}
	err := scatter(len(db.pdbs), func(i int) (err error) {
		db.pdbs[i], err = sql.Open(driverName, conns[i])
		return err
	})
	if err != nil {
		return nil, err
	}
	return db, nil
}
func (db *DB) Close() error {
	return scatter(len(db.pdbs), func(i int) error {
		return db.pdbs[i].Close()
	})
}
func (db *DB) Driver() driver.Driver {
	return db.Master().Driver()
}
func (db *DB) Begin() (*sql.Tx, error) {
	return db.Master().Begin()
}