-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpythonMysqlHelperC.py
152 lines (136 loc) · 5.02 KB
/
pythonMysqlHelperC.py
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
# -*- coding: utf-8 -*-
# by dl
import pymysql
import sys
from config import conf
class pythonMysqlHepler:
def __init__(self, host=conf.my_host,
user=conf.my_user,
password=conf.my_password,
db=conf.my_db,
port=conf.my_port,
charset=conf.my_charset):
self.host = host
self.user = user
self.password = password
self.db = db
self.port = port
self.charset = charset
self.con = pymysql.connect(host=self.host,
user=self.user,
password=self.password,
db=self.db,
port=self.port,
charset=self.charset
)
def createCur(self, funcName=''):
if funcName in ['getOne', 'getCol']:
self.cur = self.con.cursor()
else:
self.cur = self.con.cursor(cursor=pymysql.cursors.DictCursor)
def executeSql(self, sql, params):
if params:
result = self.cur.execute(sql, params)
else:
result = self.cur.execute(sql)
return result
def getOne(self, sql, params=()):
self.createCur(sys._getframe().f_code.co_name)
self.executeSql(sql + ' limit 1', params)
results = self.cur.fetchone()
if results:
return results[0]
else:
return results
def getRow(self, sql, params=()):
self.createCur(sys._getframe().f_code.co_name)
self.executeSql(sql + ' limit 1', params)
results = self.cur.fetchone()
return results
def getCol(self, sql, params=()):
self.createCur(sys._getframe().f_code.co_name)
self.cur.execute(sql, params)
results = self.cur.fetchall()
if results:
return [x[0] for x in results]
else:
return results
def getCols(self, sql, params=()):
self.createCur(sys._getframe().f_code.co_name)
self.cur.execute(sql, params)
results = self.cur.fetchall()
if results:
return [list(x.values()) for x in results]
else:
return results
def getAll(self, sql, params=()):
self.createCur(sys._getframe().f_code.co_name)
self.executeSql(sql, params)
results = self.cur.fetchall()
return results
def exec(self, sql, params=()):
self.createCur(sys._getframe().f_code.co_name)
result = self.executeSql(sql, params)
return result
def insert(self, table, data):
self.createCur(sys._getframe().f_code.co_name)
colStr = '(' + ','.join(data.keys()) + ')'
vDataStr = ''
for _ in data.keys():
vDataStr += '%s,'
vDataStr = vDataStr[:-1]
vDataStr = '(' + vDataStr + ')'
sql = 'insert into ' + table + colStr + ' values ' + vDataStr
params = list(data.values())
results = self.cur.execute(sql, params)
self.con.commit()
return results
def insertM(self, table, data):
self.createCur(sys._getframe().f_code.co_name)
# 列
colStr = '(' + ','.join(data[0]) + ')'
# 值
vDataStr = ''
params = []
for _ in data[1:]:
vDataStr += '('
for __ in _:
vDataStr += '%s,'
params.append(__)
vDataStr = vDataStr[:-1] + '),'
vDataStr = vDataStr[:-1]
sql = 'insert into ' + table + colStr + ' values ' + vDataStr
results = self.cur.execute(sql, params)
self.con.commit()
return results
def update(self, table, data, where):
self.createCur(sys._getframe().f_code.co_name)
setStr = ''
for _ in data:
setStr += _ + ' = %s,'
setStr = setStr[:-1]
whereStr = ' where ' + where
sql = 'update ' + table + ' set ' + setStr + whereStr
params = list(data.values())
results = self.cur.execute(sql, params)
self.con.commit()
return results
if __name__ == '__main__':
# res = pythonMysqlHepler().insert(table='user_shop', data={'name': 'DLInsert'})
# print(res)
# res = pythonMysqlHepler().insertM(table='user_shop', data=[['name','account'], ['DL','123'], ['DL2','456']])
# print(res)
# 没有实例化直接用会报错 不想实例化可以直接在类名后面加一个()
# res = pythonMysqlHepler().update(table='user_shop', data={'name': 'DLTest'}, where='id = 2')
# print(res)
# res = pythonMysqlHepler().exec(sql='delete from user_shop where id = 1')
# print(res)
# res = pythonMysqlHepler().getAll(sql='select * from user_shop')
# print(res)
# res = pythonMysqlHepler().getOne(sql='select id from user_shop where id =2')
# print(res)
# res = pythonMysqlHepler().getRow(sql='select * from user_shop')
# print(res)
# res = pythonMysqlHepler().getCol(sql='select name from user_shop')
# print(res)
pass