概述

直接使用python api操作数据库,已经很方便实用了,但有时我们根据需求,还是再次封装,让操作更加简单

# coding=utf-8

import mysql.connector

class MySQLUtil:

def __init__(self):

self._conn=None

self._rowcount=0

def connect(self,user,password,host,port,database,buffered=True):

self._conn=mysql.connector.connect(user=user,

password=password,

host=host,

port=port,

database=database,

buffered=buffered

)

def queryall(self,sql,paras=None):

'''

执行select语句,返回所有结果,list类型

'''

try:

cursor=self._conn.cursor()

cursor.execute(sql,paras)

datas=cursor.fetchall()

self._rowcount=cursor.rowcount

return datas

finally:

cursor.close()

def queryone(self,sql,paras=None):

'''

执行select语句,返回一条记录,tuple类型

'''

try:

cursor=self._conn.cursor()

cursor.execute(sql,paras)

data=cursor.fetchone()

self._rowcount=cursor.rowcount

return data

finally:

cursor.close()

def update(self,sql,paras):

'''

执行insert、update、delete语句,返回影响的记录数据

'''

try:

cursor=self._conn.cursor()

cursor.execute(sql,paras)

self._rowcount=cursor.rowcount

return self._rowcount

finally:

cursor.close()

@property

def rowcount(self):

'''

如果是执行queryall()、queryone(),就返回查询结果的行数

如果是执行update(),返回影响的记录数据

'''

return self._rowcount

def commit(self):

self._conn.commit()

def rollback(self):

self._conn.rollback()

def close(self):

self._conn.close()

if __name__ == "__main__":

try:

db=MySQLUtil()

db.connect('root','','127.0.0.1','3308','test',True)

datas=db.queryone("select * from user where password=%s",['123456'])

print(datas)

print(db.rowcount)

# num=db.update("update user set password=%s where id=%s",['1','3920e47cf7224e0eb9a1d75f9ded3f4e'])

# print(num)

# print(db.rowcount)

# db.commit()

finally:

db.close()

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐