Exemple #1
0
class MySQLAPI(object):
    """ MySQL API

    Usage:

        client = MySQLAPI(
            host='127.0.0.1', port=3306, user='******',
            password='******', db='your-database-name')
        client.connect()
        result = client.query('select * from table_a')

    """
    __connected = False

    def __init__(self, host, port, user, password, db, timeout=3):
        self.__host = host
        self.__user = user
        self.__password = password
        self.__db = db
        self.__port = port
        self.__timeout = timeout

    def connect(self):
        try:
            self.__connect = Connection(host=self.__host,
                                        user=self.__user,
                                        passwd=self.__password,
                                        db=self.__db,
                                        port=self.__port,
                                        connect_timeout=self.__timeout)
            self.__cursor = self.__connect.cursor(DictCursor)
            self.__connected = True
        except Exception as e:
            raise MySQLAPIException(e)

    # connection status for etcd
    def is_connect(self):
        return self.__connected

    # check connection status for etcd
    def __checkStatus__(self):
        if not self.is_connect():
            raise MySQLAPIException('Database NOT Connected')

    def __del__(self):
        try:
            if self.is_connect():
                self.__cursor = None
                self.__connect.close()
                self.__connected = False
        except Exception as e:
            raise MySQLAPIException(e)

    @db_check_connect
    def query(self, sql):
        try:
            self.__cursor.execute(sql)
            return self.__cursor.fetchall()
        except Exception as e:
            raise MySQLAPIException(e)