构造类实现mysql增改查以及常用的方法

几个知识点

  1. cur.execute()返回值是影响条数
  2. fetchone()是取结果集中的第一条,所以多条里取一条记得让目标数据在第一条才能用这个方法
  3. fetchmany() 读取多条
  4. fetchall()获取全部数据
  5. cursor.rownumber 获取当前游标位置
  6. cursor.scroll(2,mode='relative')将游标前移2个位置
  7. conn.rollback()回滚事务 -->事务回滚需要在关闭游标之前执行
__author__ = 'kangpc'
__date__ = '2021-12-31 9:10'

import pymysql,random,time


class MakeDb:
	def __init__(self):
		# 连接参数
		self.host = "10.11.22.33"
		self.port = 3306
		self.user = "root"
		self.passwd = "123456"
		self.database = "finance"

	def open_conn(self):
		self.conn = pymysql.connect(
			host = self.host,
			port = self.port,
			user = self.user,
			password = self.passwd,
			database = self.database,
			charset = 'utf8'
		)

	def insert(self,sql, purchase_order,account_period):
		try:
			cur = self.conn.cursor()
			result = cur.execute(sql,(purchase_order,account_period))
		except Exception as e:
			print("----执行sql报错,错误信息----")
			raise e
		finally:
			cur.close()
			self.conn.commit()
			self.conn.close()
		return result

	def update(self,sql):
		try:
			cur = self.conn.cursor()
			result = cur.execute(sql)
		except Exception as e:
			print("----执行sql报错,错误信息----")
			raise e
		finally:
			cur.close()
			self.conn.commit()
			self.conn.close()
		return result

	def select(self,sql):
		try:
			cur = self.conn.cursor()
			cur.execute(sql)
		except Exception as e:
			print("----执行sql报错,错误信息----")
			raise e
		finally:
			cur.close()
			self.conn.commit()
			self.conn.close()
		return cur.fetchone()


if __name__ == '__main__':
	# 在fin_order插入收货单
	sql1 = "INSERT INTO finance.fin_order...."

	# 查询fin_order未对账的最小id
	sql2 = "select min(id) from fin_order....."

	# 批量更新汇总单为未对账的状态
	sql3 = "update fin_order .........."


	db = MakeDb()
	conn = db.open_conn()
	db.select(sql2)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是一言

让我看看你的头像

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值