• MySQL数据库工具类


    • 数据库操作分为两类
    • 非查询
    • # 增加,删,修改 都是非查询!
      # 实现方法: 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]}')
  • 相关阅读:
    通过欧拉计划学Rust编程(第500题)
    通过欧拉计划学Rust编程(第54题)
    刷完欧拉计划中难度系数为5%的所有63道题,我学会了Rust中的哪些知识点?
    用欧拉计划学Rust编程(第26题)
    通过欧拉计划学习Rust编程(第22~25题)
    用欧拉计划学Rust语言(第17~21题)
    用欧拉计划学习Rust编程(第13~16题)
    用欧拉计划学Rust语言(第7~12题)
    通过欧拉计划学Rust(第1~6题)
    《区块链生存训练2.0》PDF
  • 原文地址:https://www.cnblogs.com/weisimin123/p/11699148.html
Copyright © 2020-2023  润新知