python 增删改查数据库封装_Python pymysql 增删改查封装

# FileName : DBHandle.py

# Author : Adil

# DateTime : 2018/11/29 2:03 PM

# SoftWare : PyCharm

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(self.host,self.username,self.password,self.database,self.port,charset='utf8')

# 这里 注释连接的方法,是为了 实例化对象时,就创建连接。不许要单独处理连接了。

#

# def connDataBase(self):

# ''' 数据库连接 '''

#

# self.db = pymysql.connect(self.host,self.username,self.password,self.port,self.database)

#

# # self.cursor = self.db.cursor()

#

# return self.db

def insertDB(self,sql):

''' 插入数据库操作 '''

self.cursor = self.db.cursor()

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 deleteDB(self,sql):

''' 操作数据库数据删除 '''

self.cursor = self.db.cursor()

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 updateDb(self,sql):

''' 更新数据库操作 '''

self.cursor = self.db.cursor()

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):

''' 数据库查询 '''

self.cursor = self.db.cursor()

try:

self.cursor.execute(sql) # 返回 查询数据 条数 可以根据 返回值 判定处理结果

data = self.cursor.fetchall() # 返回所有记录列表

print(data)

# 结果遍历

for row in data:

sid = row[0]

name = row[1]

# 遍历打印结果

print('sid = %s, name = %s'%(sid,name))

except:

print('Error: unable to fecth data')

finally:

self.cursor.close()

def closeDb(self):

''' 数据库连接关闭 '''

self.db.close()

if __name__ == '__main__':

DbHandle = DataBaseHandle('127.0.0.1','adil','helloyyj','AdilTest',3306)

DbHandle.insertDB('insert into test(name) values ("%s")'%('FuHongXue'))

DbHandle.insertDB('insert into test(name) values ("%s")'%('FuHongXue'))

DbHandle.selectDb('select * from test')

DbHandle.updateDb('update test set name = "%s" where sid = "%d"' %('YeKai',22))

DbHandle.selectDb('select * from test')

DbHandle.insertDB('insert into test(name) values ("%s")'%('LiXunHuan'))

DbHandle.deleteDB('delete from test where sid > "%d"' %(25))

DbHandle.selectDb('select * from test')

DbHandle.closeDb()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值