Administrator
3 天以前 5f034f7a6733b03e0d08d7920ec6de1b1517c421
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
 
# 把连接参数定义成字典
import constant
from log_module.log import logger_mysql_debug
from utils import middle_api_protocol
 
config = constant.MYSQL_CONFIG
 
 
class Mysqldb:
    # 初始化方法
    def __init__(self):
        pass
 
    def __request(self, cmd, args):
        data = {
            "db": config["database"],
            "cmd": cmd,
        }
        if args:
            data["args"] = args
        fdata = middle_api_protocol.load_mysql_cmd(data)
        try:
            result = middle_api_protocol.request(fdata)
            return result
        except Exception as e:
            logger_mysql_debug.exception(e)
 
    # 查询sql语句返回的所有数据
    def select_all(self, sql):
        return self.__request("select_all", [sql])
 
    # 查询sql语句返回的一条数据
    def select_one(self, sql):
        return self.__request("select_one", [sql])
 
    # 查询sql语句返回的几条数据
    def select_many(self, sql, num):
        return self.__request("select_many", [sql, num])
 
    # 增删改除了SQL语句不一样其他都是一样的,都需要提交
    def execute(self, sql, args=None):
        return self.__request("execute", [sql, args])
 
    def execute_many(self, sql, args=None):
        return self.__request("execute_many", [sql, args])
 
    # 当对象被销毁时,游标要关闭,连接也要关闭
    # 创建时是先创建连接后创建游标,关闭时是先关闭游标后关闭连接
    def __del__(self):
        pass
 
 
if __name__ == '__main__':
    mysqldb = Mysqldb()
    # 插入单条数据
    mysqldb.execute("insert into clients(account,pwd,rule) values(%s,%s,%s)", ("test", 123456, "\"123"))
    # 插入多条数据
    mysqldb.execute_many("insert into clients(account,pwd,rule) values(%s,%s,%s)",
                         [("test", 123456, "\"123"), ("test", 123456, "\"123")])