import pymysql

from Common.handle_config import conf

"""
1、连接数据库，创建游标
"""


class HandleDB():

    def __init__(self):
        self.conn = pymysql.connect(
            host=conf.get("mysql", "host"),
            user=conf.get("mysql", "user"),
            password=conf.get("mysql", "password"),
            port=conf.getint("mysql", "port"),
            charset="utf8",
            cursorclass=pymysql.cursors.DictCursor
        )
        # 第二步 创建游标
        self.cur = self.conn.cursor()

    # 查找一条数据
    def select_one_data(self, sql):
        # 查询前先刷新一下
        self.conn.commit()
        # 执行sql语句前，先检查一下sql连接是否断开
        self.conn.ping(reconnect=True)
        # 第三步 执行sql语句
        self.cur.execute(sql)
        # 获取数据
        return self.cur.fetchone()

    # 查找全部数据
    def select_all_data(self, sql):
        # 查询前先刷新一下
        self.conn.commit()
        # 执行sql语句前，先检查一下sql连接是否断开
        self.conn.ping(reconnect=True)
        # 第三步 执行sql语句
        self.cur.execute(sql)
        # 获取数据
        return self.cur.fetchall()

    # 查找 总数
    def select_count(self, sql):
        # 查询前先刷新一下
        self.conn.commit()
        # 执行sql语句前，先检查一下sql连接是否断开
        self.conn.ping(reconnect=True)
        # 第三步 执行sql语句
        return self.cur.execute(sql)

    def update(self):
        # 执行增、删、改操作
        self.cur.execute(sql)
        self.conn.commit()

    def close(self):
        self.cur.close()
        self.conn.close()


if __name__ == '__main__':
    sql = "SELECT * FROM FlowMicros.micros_customer LIMIT 5"
    # data = HandleDB().get_one_data(sql)
    db = HandleDB()
    data = db.select_count(sql)
    db.close()
    print(data)
