zoukankan      html  css  js  c++  java
  • 通过Python+MySQLdb库封装数据库的工具类【多测师】

    #coding=utf-8
    
    '''
    python操作mysql数据库
    robotframework框架中用到了MySQLdb中间件和DatabaseLibrary第三方库
    author:多测师_王sir
    '''
    '''
    创建数据库连接对象需要的参数
    host
    string, host to connect
    
    user
    string, user to connect as
    
    passwd
    string, password to use
    
    db
    string, database to use
    
    port
    integer, TCP/IP port to connect to
    '''
    import MySQLdb    #MySQLdb模块==》做mysql数据库自动化测试
    #
    # #创建一个连接数据库的对象
    # #mysql数据库的默认端口号为3306    范围:3306-3309
    db = MySQLdb.connect("192.168.131.128","root","123456","dcs46",3306)
    #创建一个数据库的游标对象
    #游标对象有2个作用:
    #1.执行sql语句
    #2.接受返回值
    cursor = db.cursor()   #创建一个游标对象
    select_sql = "select * from student;"    #定义了一个SQL语句
    cursor.execute(select_sql)    #通过游标对象调用execute实例方法执行SQL语句、执行后的结果被保存到了cursor对象中
    
    #fetchone返回表中第一行的数据
    one = cursor.fetchone()             #并且返回查询到的内容、fetchone这个实例方法只返回第1行的数据
    print one         #(1L, 99L) 这返回的数据L表示python当中的长整型
    print type(one)   #<type 'tuple'>
    
    #fetchall返回表中所有的内容
    all = cursor.fetchall()
    print all
    print type(all)   #<type 'tuple'>
    
    
    
    #封装成为一个工具类
    import MySQLdb
    
    class Db_Utils:
    
        def __init__(self,host,user,passwd,db,port):
            '''
            连接数据库所需要的参数
            '''
            self.host = host
            self.user = user
            self.passwd = passwd
            self.db = db
            self.port = port
    
        def get_connection(self):
            '''
            创建了一个连接mysql数据库的对象
            :return:
            '''
            db = MySQLdb.connect(self.host,self.user,self.passwd,self.db,self.port)
            return db
    
        def select_one(self,sql):
            '''
            封装一个查询表中第一行数据的工具方法
            :return:
            '''
            try:
                db = self.get_connection()   #拿到了一个连接数据库的对象
                cursor= db.cursor()          #创建一个游标对象
                cursor.execute(sql)
                db.commit()  # 再次往数据库提交数据或者执行的请求
                one = cursor.fetchone()      #拿到表中的第一行数据
                return one
            except Exception:
                db.rollback()   #数据库的回滚、把数据库代码的操作返回到上一次操作的状态
    
        def delete_one(self,del_sql,sel_sql):
            '''
            封装一个删除表中特定数据并且返回表中剩余数据的工具方法
            :param del_sql:
            :param sel_sql:
            :return:
            '''
            try:
                db = self.get_connection()
                cursor = db.cursor()
                cursor.execute(del_sql)   #删除
                cursor.execute(sel_sql)   #查询删除后表中剩余的数据
                db.commit()
                all =  cursor.fetchall()
                return all
            except Exception:
                db.rollback()
    
    
    if __name__ == '__main__':
        m = Db_Utils("192.168.131.128","root","123456","dcs46",3306)   #创建一个对象
        u = m.select_one("select * from student;")   #对象调用实例方法
        print u
    
    
    #练习题:
    #1.封装一个查询所有数据的工具方法
    #2.封装一个删除表中所有数据的工具方法、并返回剩下的数据
  • 相关阅读:
    js_sl 分享
    js_sl 延迟菜单
    jszs 历史管理
    jszs 对象引用
    jszs 快速排序
    jszs 枚举算法
    dom cookie记录用户名
    dom 拖拽回放
    dom div重合提示
    dom 输入文字模拟滚动
  • 原文地址:https://www.cnblogs.com/xiaoshubass/p/12864939.html
Copyright © 2011-2022 走看看