Python操作数据库封装类

Python进行数据库操作自己写的一个类,不喜勿喷

  • 因为长期调用远程数据库问题,在这里自制了一个操作数据库的代码方便以后使用调试。

奉上代码

import pymysql
class MySql(object):
    def __init__(self,password,database,sql_line,host="localhost",port=3306,user="root"):
        self.host = host
        self.port = port
        self.user = user
        self.password = password
        self.database = database
        self.sql_set = sql_line
        self.conn = pymysql.connect(
            host=self.host,
            port=self.port,
            user=self.user,
            password=self.password,
            database=self.database,
            charset="utf8"
            )
        self.cursor = self.conn.cursor()
    def create(self):
        try:
            if len(self.sql_set) == 2:
                self.sql = "create table {}({});".format(self.sql_set[0],self.sql_set[1])
            else:
                return "参数错误,请检查"
            self.cursor.execute(self.sql)
            return "添加成功"
        except Exception as err:
            self.conn.rollback()
            return "添加错误:{}".format(err)
        finally:
            self.close()
    def insert(self):
        try:
            if len(self.sql_set) >= 2:
                self.sql = 'insert into {} value ("{}")'.format(self.sql_set[0],self.sql_set[1])
                print(self.sql)
            else:
                return "参数错误,请检查"
            self.cursor.execute(self.sql)
            self.conn.commit()
            return "插入成功"
        except Exception as err:
            self.conn.rollback()
            return "插入错误:{}".format(err)
        finally:
            self.close()
    def select(self):
        try:
            self.sql = self.sql_set
            self.cursor.execute(self.sql)
            results = self.cursor.fetchall()
            return results
        except Exception as err:
            self.conn.rollback()
            return "查询错误::{}".format(err)
        finally:
            self.close()
    def update(self):
        try:
            if len(self.sql_set) == 2:
                self.sql = "update {} set {}".format(self.sql_set[0],self.sql_set[1])
            elif len(self.sql_set) == 3:
                self.sql = "update {} set {} where {}".format(self.sql_set[0],self.sql_set[1],self.sql_set[2])
            else:
                return "参数错误,请检查"
            self.cursor.execute(self.sql)
            self.conn.commit()
            return "更新成功"
        except Exception as err:
            self.conn.rollback()
            return "更新失败:{}".format(err)
        finally:
            self.close()
    def delete(self):
        try:
            if len(self.sql_set) == 1:
                self.sql = "delete from {}".format(self.sql_set[0])
            elif len(self.sql_set) == 2:
                self.sql = "delete from {} where {}".format(self.sql_set[0],self.sql_set[1])
            else:
                return "参数错误,请检查"
            self.cursor.execute(self.sql)
            self.conn.commit()
            return "删除成功"
        except Exception as err:
            self.conn.rollback()
            return "删除失败::{}".format(err)
        finally:
            self.close()
    def delete_table(self):
        try:
            if len(self.sql_set) == 1:
                self.sql = "drop table {}".format(self.sql_set[0])
            else:
                return "参数错误,请检查"
            self.cursor.execute(self.sql)
            self.conn.commit()
            return "删除成功"
        except Exception as err:
            self.conn.rollback()
            return "删除失败::{}".format(err)
        finally:
            self.close()
    def close(self):
       cursor.close()
       conn.close()
#db_create = MySql("123456","mysql",("example","example varchar(20)"))
#print(db_create.create())
#db_insert = MySql("123456","mysql",("example","example"))
#print(db_insert.insert())
#db_update = MySql("123456","mysql",("example",'example="example"'))
#print(db_update.update())
#db_select = MySql("123456","mysql","select * from db")
#print(db_select.select())
#db_delete = MySql("123456","mysql",("example",))
#print(db_delete.delete())
#db_delete_table = MySql("123456","mysql",("example",))
#print(db_delete_table.delete_table())


谢谢各位观看

发布了13 篇原创文章 · 获赞 25 · 访问量 1502

猜你喜欢

转载自blog.csdn.net/qq_45414559/article/details/104956345