import sqlite3


class Sql_Demo(object):
def __init__(self, datebase):
self.conn = sqlite3.connect(datebase) # 创建connect对象
self.cursor1 = self.conn.cursor() # 创建cursor对象
self.message_error = "输入的sql语句有问题"
self.message_erro_table = "此表已存在"
self.message_delete="删除成功"
self.message_update="更新成功"
self.message_insert="插入成功"

# 创建表
def create_table(self, sql):
try:
self.cursor1.execute(sql)
except:
print(self.message_erro_table)
return False

# 插入SQL处理 例如 insert into table_name(?,?) values(?,?)
def sql_insert_format(self, sql, file_value):
return sql.format(*file_value.keys(), *file_value.values())

# 更新或删除的SQL处理 例如 selec * from table_name where id=?
def sql_update_select_format(self, sql, values):
return sql.format(**values)

# 执行SQL方法
def sql_execute(self, sql):
self.cursor1.execute(sql)

# 提交事务,关闭连接
def sql_commit_close(self):
self.conn.commit()
self.conn.close()

# 插入数据
def insert(self, sql, file):
try:
for line in file:
self.sql_execute(self.sql_insert_format(sql, line))
except:
print("插入失败")
self.sql_commit_close()
print(self.message_insert)

# 查询所有数据
def select_all(self, sql):
try:
self.sql_execute(sql)
for line in self.cursor1.fetchall(): # 循环遍历获得结果集
print(line)
except:
print(self.message_error)
self.sql_commit_close()

# 有条件查询数据
def select(self, sql, line):
try:
self.sql_execute(self.sql_update_select_format(sql, line))
for line in self.cursor1.fetchall(): # 循环遍历获得结果集
print(line)

except:
print(self.message_error)
self.sql_commit_close()

# 删除全部数据
def delete_all(self, sql):
try:
self.sql_execute(sql)
except:
print(self.message_error)
self.sql_commit_close()
print(self.message_delete)
# 有条件的删除
def delete(self, sql, line):
try:
self.sql_execute(self.sql_update_select_format(sql, line))
except:
print(self.message_error)
self.sql_commit_close()
print(self.message_delete)
# 更新数据
def update(self, sql, line):
try:
self.sql_execute(self.sql_update_select_format(sql, line))
except:
print(self.message_error)
self.sql_commit_close()
print(self.message_update)


#===下面为调用部分=====
from sqlistDemo import Sql_Demo

s = Sql_Demo("sql_demo_001.db") # 创建实例对象,并传入数据库名,如果此数据库不存在,就重新创建。

# ====下面的执行那部分模块,就启该部分模块========

# 创建表时执行模块
# sql1 = "create table t_employee( id integer primary key autoincrement,name text)" # 输入创建表的SQL
# s.create_table(sql1) # 调用创建表的方法

# 无条件查询数据时执行的模块
# sql = "select * from t_employee" # 查询数据的SQL
# s.select_all(sql) # 调用无条件的查询SQL

# 有条件查询数据是执行的模块
info={"name":"李四"}#李四会赋值到 {name}-->李四
sql="select * from t_employee where name='{name}'"
s.select(sql,info)

# 更新数据执行的模块
# info={"name":"王五"}#需要更细的数据
# sql="update t_employee set name='{name}'"
# s.update(sql,info)

# 插入数据时执行的模块
# file=[{"name":"张三"},{"name":"李四"}]#需要插入的多条数据
# sql="insert into t_employee({}) values('{}')"
# s.insert(sql,file)

#删除表里的所有数据模块
# sql = "delete from t_employee "
# s.delete_all(sql)
扫码关注我们
微信号:SRE实战
拒绝背锅 运筹帷幄