def _execute(self, sql, args):
        """执行sql语句
        :param sql: sql语句
        :param args: 参数
        :return: 返回的都是数组对象
        """
        sql = sql.lower().strip()
        args = args or ()
        tmp = sql[:6]
        with (yield self._pool.Connection()) as conn:
            try:
                with conn.cursor() as cursor:
                    yield cursor.execute(sql, args=args)
                    if tmp == 'select':
                        datas = cursor.fetchall()   
                        return datas
            except Exception as e:
                err = traceback.format_exc()
                print(err)
                if tmp in ['insert', 'update', 'delete']:
                    yield conn.rollback()
            else:
                if tmp == 'insert':
                    insertId = conn.insert_id()
                    yield conn.commit()
                    # 返回插入的主键id
                    return insertId
                elif tmp in ['update', 'delete']:
                    yield conn.commit()