- 数据库操作分为两类
- 非查询
-
# 增加,删,修改 都是非查询!# 实现方法: execute(sql语句,不同参数列表)# 增删改区别: sql语句不同, 参数个数不同!--->可以独一个共用方法,把sql和参数传过来!# 增删改功能都返回: 影响行数据
def my_execute(sql,params): ,,,, return num
查询
1# 查询1条 游标.fetchone() 2# 查询多条 游标.fetchall()
连接数据库相关参考所有功能都需要要---->放在类的初始化中init
获取数据库连接: 所有方法都需要!--->可以独立出来! init方法,负责初始连接数据库需要各种参数
、import pymysql # 导入数据库驱动模块! class MysqlHelper(): #db = MysqlHelper('localhost',3306,'root','root','李森') def __init__(self,host,port,user,passwd,db,charset='utf8'): self.host= host self.port = port self.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=self.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('localhost',3306,'root','root','李森') #增加 #insert into students values(default,'张A','男',20,'山西') ''' sql = 'insert into students values(default,%s,%s,%s,%s)' params=['张B','男',20,'山西'] num = db.my_execute(sql,params) print(num) ''' # 查1条 sql = 'select * from student_1 where age =%s' params=(12) result =db.get_one(sql,params) #((),()) print(result) student_1 = db.get_all(sql,params) for stu in student_1: print(f'名字:{stu[1]}')