import pymysql

 

class DataBaseHandle(object):

''' 定义一个 MySQL 操作类'''

       def __init__(self, host, username, password, database, port):

     '''初始化数据库信息并创建数据库连接'''

        # 下面的赋值其实可以省略,connect 时 直接使用形参即可

      self.host = host self.username = username

       self.password = password

      self.database = database

      self.port = port

       self.db = pymysql.connect(

        host=self.host,

        user=self.username,

        password=self.password,

         db=self.database,

         port=self.port,

        charset="utf8"

      )

      self.cursor = self.db.cursor(pymysql.cursors.DictCursor) 

  

  

        

 

  def insertDB(self, sql):

  ''' 插入数据库操作 ''' try:

     # 执行sql

    self.cursor.execute(sql) 

     # aa = self.cursor.execute(sql) # 返回    插入数据 条数 可以根据 返回值 判定处理结果

      # print(aa )

    self.db.commit()

     # query = 'insert into 表名(列名1, 列名2, 列名3, 列名4, 列名5, 列名6) values(%s, %s, %s, %s, %s, %s)'

    # self.cursor.execute(sql) 

    

      except:

       # 发生错误时回滚

      self.db.rollback()

    finally:

      self.cursor.close()

  

  

  def  deleteDB(self, sql):

  '''操作数据库数据删除''' try:

     # 执行sql

     self.cursor.execute(sql) 

     # aa = self.cursor.execute(sql) # 返回   删除数据 条数 可以根据 返回值 判定处理结果

      # print(aa )

    self.db.commit()

    # self.cursor.execute(sql) 

      except:

       # 发生错误时回滚

      self.db.rollback()

    finally:

      self.cursor.close()

  

  

  def  deleteDB(self, sql):

  '''操作数据库数据删除''' try:

     # 执行sql

     self.cursor.execute(sql) 

     # aa = self.cursor.execute(sql) # 返回  删除数据 条数 可以根据 返回值 判定处理结果

      # print(aa )

    self.db.commit()

    

    # self.cursor.execute(sql) 

    

      except:

       # 发生错误时回滚

      self.db.rollback()

    finally:

      self.cursor.close()

  

  

  def  updateDB(self, sql):

  '''操作数据库数据更新''' try:

     # 执行sql

     self.cursor.execute(sql) 

     # aa = self.cursor.execute(sql) # 返回  更新数据 条数 可以根据 返回值 判定处理结果

      # print(aa )

    self.db.commit()

    

    # self.cursor.execute(sql) 

    

      except:

       # 发生错误时回滚

      self.db.rollback()

    finally:

      self.cursor.close()

  def selectDb(self,sql):

    ''' 数据库查询 '''

    try:

      self.cursor.excute(sql)   # 返回 查询数据 条数 可以根据 返回值 判定处理结果

      data = self.cursor.fetchall()   返回所有记录列表

      print(data)

    #结果遍历

      for row in data:

         name = row ["name"]

         age = row ["age"]

        #遍历打印结果

          print('age = %s, name = %s' % (age, name))

     except:

        print('Error: unable to fecth data')

     finally:

        self.cursor.close()

  

  def closeDb(self):

    ''' 数据库连接关闭 '''

    self.db.close()

 

if  __name__  == ' __main__ ' :

    DbHandle = DataBaseHandle('127.0.0.1', 'root', '****', 'class', 3306,)

    

    如:

      DbHandle.selectDb("select * from students where id > 10")

 

   DbHandle.closeDb()