mysql数据库操作工具类_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:重复!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值