zoukankan      html  css  js  c++  java
  • python操作mysql数据库

    在我们做自动化测试工作中,肯定会用到查询数据库验证数据库的操作;

    本篇主要写的就是封装好的针对数据库的基本操作,如果工作中遇到造数据也可以直接调用;

    代码:

    # project  :Python_Script
    # -*- coding = UTF-8 -*-
    # Autohr   :XingHeYang
    # File     :operation_mysql_database.py
    # time     :2019/11/5  10:24
    # Describe :封装对mysql数据库的基本操作
    # ---------------------------------------
    import pymysql
    
    class Operation_Mysql():
    
        def __init__(self,host,user,password,db,charset='utf8'):
            '''
            初始化连接mysql的操作
            :param host: 传入mysql主机地址
            :param user: 传入连接mysql用户名
            :param password: 传入连接密码
            :param db: 指定数据库名
            :param charset: 字符编码格式  默认utf8编码
            '''
            self.connect = pymysql.connect(    # 连接mysql
                host = host,
                user = user,
                password = password,
                db = db,
                charset = charset,
            )
        def __execute_sql(self,sql):
            '''
            该方法是一个私有方法,主要用于执行sql语句
            :param sql: 传入要执行的sql语句
            :return: 如果是查询语句,将会返回查询的结果值。
            :return_type:返回tuple类型
            '''
            with self.connect.cursor() as cursor:  # 通过游标对象获取容器
                cursor.execute(sql)                # 通过游标对象执行sql语句
                data = cursor.fetchall()           # 获取执行sql后的返回数据,插入数据和创建表是没有返回数据的,结果为空元组
            self.connect.commit()                  # 通过连接对象将对数据库的操作进行提交
            return data                            # 返回查询后的数据
    
        def insert_data(self,table,*args):
            '''
            封装的插入数据的方法
            :param table: 传入要插入数据的表名
            :param args: 传入插入的数据值,传入类型是元组
            '''
            sql = "insert into %s values %s" % (table, tuple(*args))
            self.__execute_sql(sql)                    # 调用私有方法,执行sql语句
    
        def create_table(self,tbale,table_type):
            '''
            封装创建表的方法
            :param tbale: 传入要创建的表名
            :param table_type: 传入要创建表的字段 数据类型和表约束;传入一个字符串的类型
            '''
            sql = "create table %s(%s)"%(tbale,table_type)
            self.__execute_sql(sql)                    # 调用私有方法,执行sql语句
    
    
    
        def select_data(self,sql):
            '''
            封装的查询语句的方法
            :param sql: 因查询的方式太多,所以直接传入sql语句进行查询
            :return: 返回查询后的结果数据
            '''
            data = self.__execute_sql(sql)
            return data
    
        def execute_sql(self,sql):
            '''
            公有的执行sql语句方法;主要用于修改数据和删除数据
            :param sql: 传入需要执行的sql语句
            '''
            self.__execute_sql(sql)

       
        def close_connect(self):
            '''
            主要用于关闭连接
            :return:
            '''
            self.connect.close()
    
    
    
    if __name__ == '__main__':
        # 创建操作数据库对象
        operation = Operation_Mysql('localhost','root','123456','hrdb')
        # 创建表
        type = 'name varchar(20),age int,sex char(10)'
        operation.create_table('userInfo',type)
        # 插入数据
        tuple1 = ['zhangsan', 18, 'man']
        operation.insert_data('userInfo',tuple1)
        # 查询数据,并输出
        sql = 'select * from userInfo'
        print(operation.select_data(sql))
        # 删除数据
        sql = "delete from userInfo"
        operation.execute_sql(sql)
       operation.close_connect()
  • 相关阅读:
    Joshua Bloch错了? ——适当改变你的Builder模式实现
    集成基于OAuth协议的单点登陆
    集成基于CAS协议的单点登陆
    数据库设计中的Soft Delete模式
    完成C++不能做到的事
    ExtJS in Review
    DTO – 服务实现中的核心数据
    保存好你的密码 —— 从芝麻金融被攻破说起
    WPF
    C# 反编译防范
  • 原文地址:https://www.cnblogs.com/XhyTechnologyShare/p/11798305.html
Copyright © 2011-2022 走看看