import pymysql
host="111.1.1.1"
username="abc"
password="abc"
db="db"
class MySQLUtil:
def __init__(self,host,username,password,db,type=0,charset='utf8',port=3306):
print('start mysql operation')
self.host=host
self.username=username
self.password=password
self.db=db
self.charset=charset
self.port=port
self.type=type
def connect(self):
self.conn=pymysql.connect(host=self.host,port=self.port,user=self.username,password=self.password,db=self.db,charset=self.charset)
if self.type==0:
self.cursor = self.conn.cursor()
elif self.type==1:
self.cursor=self.conn.cursor(cursor=pymysql.cursors.DictCursor)
def close(self):
'''关闭连接'''
self.cursor.close()
self.conn.close()
def get_one(self,sql,params=()):
'''
查询一条数据
:param sql:
:param value:
:return:
'''
result=None
try:
self.connect()
self.cursor.execute(sql,params)
result=self.cursor.fetchone()
self.close()
except Exception as e:
print('repr(e):\t', repr(e))
return result
def get_topN(self,n,sql,params=()):
'''
查询前n条数据
:param sql:
:param value:
:return:
'''
result=None
try:
self.connect()
self.cursor.execute(sql,params)
result=self.cursor.fetchmany(n)
self.close()
except Exception as e:
print('repr(e):\t', repr(e))
return result
def get_all(self,sql,params=()):
'''
查询所有数据
:param sql:
:param value:
:return:
'''
result = []
try:
self.connect()
self.cursor.execute(sql, params)
for i in self.cursor.fetchall():
result.append(i)
self.close()
except Exception as e:
print('repr(e):\t', repr(e))
return result
def insert(self,sql,params=()):
return self._edit(sql, params)
def update(self,sql,params=()):
'''
修改
:param sql:
:param value:
:return:
'''
return self._commit(sql, params)
def delete(self,sql,params=()):
'''
删除
:param sql:
:param value:
:return:
'''
return self._commit(sql, params)
def _commit(self,sql,params=()):
result = 0
try:
self.connect()
result = self.cursor.execute(sql, params)
self.conn.commit()
self.close()
except Exception as e:
print('repr(e):\t', repr(e))
return result
if __name__ == '__main__':
a=MySQLUtil(host,username,password,db,1)
a.connect()
a.get_topN(10,'select ID from Account where abc=%s','abc')
a.close()