# coding: utf-8 # Author:tajochen import sqlite3 import os class SimpleSQLite3Tool: """ simpleToolSql for sqlite3 简单数据库工具类 编写这个类主要是为了封装sqlite,继承此类复用方法 """ def __init__(self, filename="stsql"): """ 初始化数据库,默认文件名 stsql.db filename:文件名 """ self.filename = filename self.db = sqlite3.connect(self.filename) self.c = self.db.cursor() def close(self): """ 关闭数据库 """ self.c.close() self.db.close() def execute(self, sql, param=None): """ 执行数据库的增、删、改 sql:sql语句 param:数据,可以是list或tuple,亦可是None return:成功返回True """ try: if param is None: self.c.execute(sql) else: if type(param) is list: self.c.executemany(sql, param) else: self.c.execute(sql, param) count = self.db.total_changes self.db.commit() except Exception as e: print(e) return False, e if count > 0: return True else: return False def query(self, sql, param=None): """ 查询语句 sql:sql语句 param:参数,可为None return:成功返回True """ if param is None: self.c.execute(sql) else: self.c.execute(sql, param) return self.c.fetchall() # def set(self,table,field=" * ",where="",isWhere=False): # self.table = table # self.filed = field # if where != "" : # self.where = where # self.isWhere = True # return True if __name__ == "__main__": # 数据库文件位置 sql = SimpleSQLite3Tool("../test.db") f = sql.execute("create table test (id int not null,name text not null,age int);") print("ok") sql.execute("insert into test (id,name,age) values (?,?,?);", [(1, 'abc', 15), (2, 'bca', 16)]) res = sql.query("select * from test;") print(res) sql.execute("insert into test (id,name) values (?,?);", (3, 'bac')) res = sql.query("select * from test where id=?;", (3,)) res = sql.query("select * from data_collection_info;") print(res) sql.close()