zoukankan      html  css  js  c++  java
  • Mysql数据库工具类

    • 数据库操作分为两类
    • 非查询
    • # 增加,删,修改 都是非查询!
      # 实现方法: execute(sql语句,不同参数列表)
      # 增删改区别: sql语句不同, 参数个数不同!--->可以独一个共用方法,把sql和参数传过来!
      # 增删改功能都返回: 影响行数据
    • def my_execute(sql,params): 
          ,,,, 
          return num
    • 查询
    • # 查询1条 游标.fetchone() 
      # 查询多条 游标.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]}')
  • 相关阅读:
    URL和DNS解析
    web工作方式,浏览网页,打开浏览器,输入网址按下回车键,然后会显示出内容,这个过程是怎样的呢?
    PHP根据数组的值分组
    EditPlus注册码在线生成,强大
    php获取内容中第一张图片地址
    PHP函数ip2long转换IP时数值太大产生负数的解决办法
    js Uncaught SyntaxError: Unexpected token错误
    虚拟机centos6.5 --VirtualBox设置全屏
    虚拟机centos6.5 --设置静态ip
    centos之开放80端口
  • 原文地址:https://www.cnblogs.com/lisen321/p/13935680.html
Copyright © 2011-2022 走看看