当前位置: 首页 > news >正文

python连接sqllite数据库工具类

背景

在数据集成业务中, 有很多token是有短效的到期时间的. 需要在调用多个接口的时候统一获取token ,因为我们集成平台的执行客户端是分步式的,集中保存平台大量客户的token在服务端有性能瓶颈.所以一般在客户端本地通过sqllite存储,故写了一个调用sqllite的工具类,在后续分享的集成代码中也会使用到.

直接上代码

#-*- coding:utf-8 -*-
#Author:Evan
#Mail:evan#chengwenit.com# sqllite数据库工具类import sqlite3
import time
import cjcconfigclass sqllitToolSql():"""sqllite数据库工具类方便其他类继承此类复用方法"""def __init__(self,filename):"""初始化数据库,定义文件名:"""self.filename = filename + ".db"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类型参数,可为Noneretutn:成功返回True,失败返回False"""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_changesself.db.commit()except Exception as e:print(e)return False,eif count > 0 :return Trueelse :return Falsedef query(self,sql,param=None):"""查询语句sql:执行的SQL语句param:参数,可为Noneretutn:成功返回True"""if param is None:self.c.execute(sql)else:self.c.execute(sql,param)return self.c.fetchall()if __name__ == "__main__":"""初始化代码,第一次初始化建表用,初始化后注释"""sql = sqllitToolSql(cjcconfig.sqldbname)## 创建APP表#f = sql.execute("""CREATE TABLE IF NOT EXISTS chw_qw_app(#     appsecret TEXT PRIMARY KEY,#     apptoken TEXT,#     synctime TEXT,#     memo TEXT);""")## 创建客户表#f = sql.execute("""CREATE TABLE IF NOT EXISTS chw_qw_cust(#     custuserid TEXT,#     username TEXT,#     corpname TEXT,#     gender TEXT,#     position TEXT,#     userid TEXT,#     type TEXT,#     createtime TEXT,#     tag_id	 TEXT,#     mobiles	 TEXT,#     add_way	 TEXT,#     record_id	 TEXT,#     PRIMARY KEY (custuserid, userid));""") ## 写入需要初始化的数据#applist = cjcconfig.applist#for i in range(len(applist)):#    sql.execute("INSERT INTO chw_qw_app (appsecret,apptoken,synctime,memo) values(?,?,?,?);",(applist[i]["appsecret"],'',str(time.time()),applist[i]["appname"]))## 带参数插入和查询示例#sql.execute("insert into chw_qw_cust (custuserid,userid,record_id) values (?,?,?);",('a001','evan','x999'))#sql.execute("replace into chw_qw_cust (custuserid,userid,type) values (?,?,?);",('a001','evan','101'))##res = sql.query("select * from chw_qw_app where id=?;",())### 删除表示例#f = sql.execute("""DROP TABLE chw_qw_cust;""")## 查询初始化数据res = sql.query("select count(*) from chw_qw_cust where record_id is null limit 10;")#res = sql.query("select count(*) from chw_qw_cust where custuserid=? and userid=?;",('231','123'))print(res)# 关闭连接sql.close()

相关文章:

  • 运维体系架构规划
  • 执梦为楫,共启中医传承新篇
  • SpringAI框架中的RAG知识库检索与增强生成模型详解
  • RAG 技术详解:如何让大模型更 “懂” 知识库?
  • O2O上门服务如何颠覆传统足浴行业?真实案例分析
  • 5 种距离算法总结!!
  • 详解 c++17 重载类 overload的每一条语句,附实例.
  • LintCode1343-两字符串和,1535-转换成小写字母
  • 强化学习三大基本方法-DP、MC、TD
  • setData执行后操作方法-微信小程序
  • AD 绘制原理图--元件的放置
  • 服务器多客户端连接核心要点(1)
  • 11.多用组合和少继承
  • 关税新政冲击波:海外仓成跨境电商角逐美国市场“利刃”?
  • OpenHarmony SystemUI开发——实现全局导航栏和状态栏关闭
  • powershell_bypass.cna 插件(适配 Cobalt Strike 4.0 的免费版本下载地址)
  • selenium替代----playwright
  • 分析NVIDIA的股价和业绩暴涨的原因
  • 计算机二级WPS Office第三套电子表格
  • 苍穹外卖--公共字段自动填充
  • 冯德莱恩:欧美贸易谈判前不会前往美国会见特朗普
  • 海南省三亚市委原常委、秘书长黄兴武被“双开”
  • “20后”比“60后”更容易遭遇极端气候事件
  • 吴勇强、高颜已任南京市委常委
  • 谢晖不再担任中超长春亚泰队主教练:战绩不佳主动请辞
  • 丁薛祥在学习《习近平经济文选》第一卷专题研讨班上强调:深入学习贯彻习近平经济思想,加强党中央对经济工作的集中统一领导