Python操作数据库,装饰器管理数据库的的打开和关闭。

import pymysql
class ConDb():
    def openClose(fun):
        def run(self,sql=None):
            #创建数据库连接
            db=pymysql.connect(host='localhost',port=3306 ,user='root',password='root',db='ljj',charset='utf8')
            #创建游标
            cursor = db.cursor()
            try:
                #运行sql语句
                cursor.execute(fun(self,sql))
                #得到返回值
                li=cursor.fetchall()
                #提交事务
                db.commit()
            except Exception as e:
                #如果出现错误,回滚事务
                db.rollback()
                #打印报错信息
                print('运行',str(fun),'方法时出现错误,错误代码:',e)
            finally:
                #关闭游标和数据库连接
                cursor.close()
                db.close()
            try:
                #返回sql执行信息
                return li
            except:
                print('没有得到返回值,请检查代码,该信息出现在ConDb类中的装饰器方法')
        return run
 
 
    @openClose
    def runSql(self,sql=None):
        if sql is None:
            sql='select * from batch'
        return sql
 
    @openClose
    def runSql1(self,sql=None):
        return sql

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值