func (pc *pooledConnectImpl) Begin() error {
	return pc.directConnection.Begin()
}
Begin wrapper of direct connection, begin transaction
package backend
import (
	"github.com/XiaoMi/Gaea/mysql"
)
type pooledConnectImpl struct {
	directConnection *DirectConnection
	pool             *connectionPoolImpl
}
func (pc *pooledConnectImpl) Recycle() {
	if pc.IsClosed() {
		pc.pool.Put(nil)
	} else {
		pc.pool.Put(pc)
	}
}
func (pc *pooledConnectImpl) Reconnect() error {
	pc.directConnection.Close()
	newConn, err := NewDirectConnection(pc.pool.addr, pc.pool.user, pc.pool.password, pc.pool.db, pc.pool.charset, pc.pool.collationID)
	if err != nil {
		return err
	}
	pc.directConnection = newConn
	return nil
}
func (pc *pooledConnectImpl) Close() {
	pc.directConnection.Close()
}
func (pc *pooledConnectImpl) IsClosed() bool {
	if pc.directConnection == nil {
		return true
	}
	return pc.directConnection.IsClosed()
}
func (pc *pooledConnectImpl) UseDB(db string) error {
	return pc.directConnection.UseDB(db)
}
func (pc *pooledConnectImpl) Execute(sql string, maxRows int) (*mysql.Result, error) {
	return pc.directConnection.Execute(sql, maxRows)
}
func (pc *pooledConnectImpl) SetAutoCommit(v uint8) error {
	return pc.directConnection.SetAutoCommit(v)
}