pymysql功能封裝


import pymysql


# username : adil
# password : helloyyj


class DataBaseHandle(object):
''' 定義一個 MySQL 操作類'''

def __init__(self, host, username, password, database, port):
'''初始化數據庫信息並創建數據庫連接'''
# 下面的賦值其實可以省略,connect 時 直接使用形參即可
self.host = host
self.username = username
self.password = password
self.database = database
self.port = port
self.db = pymysql.connect(
host=self.host,
user=self.username,
password=self.password,
db=self.database,
port=self.port,
charset="utf8"

)
self.cursor = self.db.cursor(pymysql.cursors.DictCursor)






def insertDB(self, sql):
''' 插入數據庫操作 '''


try:
# 執行sql
self.cursor.execute(sql)

# tt = self.cursor.execute(sql) # 返回 插入數據 條數 可以根據 返回值 判定處理結果
# print(tt)
self.db.commit()

# query = 'insert into 表名(列名1, 列名2, 列名3, 列名4, 列名5, 列名6) values(%s, %s, %s, %s, %s, %s)'
# self.cursor.execute(sql)

except Exception as e:

print('回滾')

print(e)

# 發生錯誤時回滾

self.db.rollback()

return e
finally:
self.cursor.close()

def deleteDB(self, sql):
''' 操作數據庫數據刪除 '''
# print('刪除')
try:
# 執行sql
print('刪除')
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 刪除數據 條數 可以根據 返回值 判定處理結果
# print(tt)
self.db.commit()
except:
print('回滾')
# 發生錯誤時回滾
self.db.rollback()
finally:
self.cursor.close()

def updateDb(self, sql):
''' 更新數據庫操作 '''


try:
# 執行sql
self.cursor.execute(sql)
# tt = self.cursor.execute(sql) # 返回 更新數據 條數 可以根據 返回值 判定處理結果
# print(tt)
self.db.commit()
except:
# 發生錯誤時回滾
self.db.rollback()
finally:
self.cursor.close()

def selectDb(self, sql):
''' 數據庫查詢 '''

try:
self.cursor.execute(sql) # 返回 查詢數據 條數 可以根據 返回值 判定處理結果

data = self.cursor.fetchall() # 返回所有記錄列表

print(data)

# 結果遍歷
except:
print('Error: unable to fecth data')
finally:
self.cursor.close()

def closeDb(self):
''' 數據庫連接關閉 '''
self.db.close()


if __name__ == '__main__':
DbHandle = DataBaseHandle('localhost', 'root', 'root', 'test01', 3306)

DbHandle.insertDB("insert into author (name) values ('隨便起名')")
# DbHandle.deleteDB("delete from abc where id=2")
# DbHandle.selectDb("select * from goods where id = 3")

DbHandle.closeDb()


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM