Python将mysql数据库相关内容进行封装

import pymysql  # 导入数据库模块


# 将数据库相关内容进行封装:
class Db_utils():
    def __init__(self, host, database, user, password, port):
        self.db = pymysql.connect(host=host,
                                  database=database,
                                  user=user,
                                  password=password,
                                  port=port)
        self.cursor = self.db.cursor()

    # 封装查询
    def sql_select(self, sql):
        self.cursor.execute(sql)  # 执行sql语句
        '''
        fetchone()函数它的返回值是单个的元组,也就是一行记录,如果没有结果,那就会返回null
        其次是fetchall()函数,它的返回值是多个元组,即返回多个行记录,如果没有结果,返回的是()
        '''
        all = self.cursor.fetchall()  # 用变量名all来接收游标返回的所有内容
        return all

    # 封装新增
    def sql_add(self, sql):
        ad = self.cursor.execute(sql)  # 执行sql语句, 用变量ad来承接执行语句,返回受影响的行数,比如影响0行,返回0
        self.db.commit()  # 确认
        return ad

    # 封装修改
    def sql_update(self, sql):
        up = self.cursor.execute(sql)  # 执行sql语句, 用变量up来承接执行语句,返回受影响的行数,比如影响0行,返回0
        self.db.commit()  # 确认
        return up

    # 封装删除
    def sql_delete(self, sql):
        de = self.cursor.execute(sql)  # 执行sql语句, 用变量de来承接执行语句,返回受影响的行数,比如影响0行,返回0
        self.db.commit()  # 确认
        return de


if __name__ == '__main__':
    a = Db_utils(host='localhost',  # ip地址
                 database='demo1',  # 帐套名
                 user='root',  # 数据库账号
                 password='123456',  # 密码
                 port=3306  # 端口号
                 )
    print(a.sql_select('select * from student0'))  # 查询表

    print(a.sql_add('insert into student0(id,name,class) value (13,2,3)'))  # 新增一条记录
    print(a.sql_add('insert into student0(id,name,class) value (15,2,3),(16,2,3)'))  # 新增多条记录

    print(a.sql_update('update student1 set name = "小华" where id ="2" '))  # 修改表数据

    print(a.sql_delete('delete from student0 where id = 14'))  # 删除一条记录
    print(a.sql_delete('delete from student0 where id in (14,15)'))  # 删除多条记录

 

posted @ 2021-08-04 10:24  夏夏夏天的西瓜  阅读(314)  评论(0编辑  收藏  举报