mysql数据库工具类

分析:
数据库操作分为两类

非查询:

增加,删,修改 都是非查询!

实现方法: execute(sql语句,不同参数列表)

增删改区别: sql语句不同, 参数个数不同!--->可以独一个共用方法,把sql和参数传过来! # 增删改功能都返回: 影响行数据!

def my_execute(sql,params):
,,,,
return num

查询

查询1条 游标.fetchone()

查询多条 游标.fetchall()

·连接数据库相关参考所有功能都需要--->放在此类的初始化方法中init

获取数据库连接:所有方法都需要!--->可以独立出来
int方法,负责初始连接数据库需要各种参数

class MysqlHelper():
# 初始化方法
def init (self,主机地址,端口,用户名,密码,字符集)
self.主机地址=主机地址
....

  def my_execute(sql,prames):
        pass
  def connect():
        ......

使用

db = MysqlHelper(Ip地址,端口.用户名,密码.字符集)

增加

num =db.my_execute(sql语句,参数列表)
if num>0:
print('成功')
else:
print('失败')

代码实现
import pymysql # 导入数据库驱动模块!

class MysqlHelper():
#db = MysqlHelper('39.98.39.173',13306,'root','root','1909C2')
def init (self,host,port,user,passwd,db,charset='utf8'):
self.hosself.user = user self.passwd = passwd self.db = db self.charset=charset #self.conn = None

def connect(self):
'''功能1: 获取连接'''
self.conn =
pymysql.connect(host=self.host,port=self.port,user=self.user,passwd=self.passwd,db=sel f.db,charset=self.charset)
self.cursor =self.conn.cursor()

def close(self):
'''功能2:释放资源'''
self.cursor.close() #关游标
self.conn.close()# 关连接

def my_execute(self,sql,params):
'''
增删改通用功能
:param sql: sql语句
:param params: 参数列表
:return: num 影响行数
'''
num =0
# 1. 打开连接
self.connect()
num = self.cursor.execute(sql,params)
self.conn.commit()
self.close() #释放资源
return num

def get_one(self,sql,params):
'''
查询1条
:param sql: sql语句
:param params: 参数列表
:return: 1条结果
'''
result =None
#1.打开链接
self.connect()
# 2.执行查询
self.cursor.execute(sql,params)
# 3 逐行抓取
result = self.cursor.fetchone()
#4.释放资源
self.close()
return result

def get_all(self, sql, params):
'''
查询所有
:param sql: sql语句
:param params: 参数列表
:return: 1条结果
'''
result = ()
self.connect()
self.cursor.execute(sql, params)
result = self.cursor.fetchall() self.close()
return result

if name == ' main ':
# 实例化对象
db = MysqlHelper('39.98.39.173',13306,'root','root','1909C2')
#增加
#insert into students values(default,'张A','男',20,'2020-11-05','176','山西')
'''
sql = 'insert into students values(default,%s,%s,%s,%s,%s,%s)'
params=['张B','男',20,'2020-11-05','176','山西']
num = db.my_execute(sql,params)
print(num)
'''
# 查1条
sql = 'select * from students where age =%s'
params=(12)
result =db.get_one(sql,params) #((),())
print(result)
studetns = db.get_all(sql,params)
for stu in studetns:
print(f'名字:{stu[1]}')

错误:
[SQL] insert into students values(default,'张三','男',20,'2020-11-05','176','山西')

[Err] 1062 - Duplicate entry '张三' for key 'name' # 名字重复! Duplicate:重复!

posted on 2020-11-05 20:52  华北陈冠希  阅读(129)  评论(0编辑  收藏  举报