python连接sqlite3工具类

简单使用python连接sqlite3工具类,代码可根据场景自行抽象

#!/usr/bin/env python
# -*- coding: utf-8 -*-import sqlite3class SQLiteHandler:# 示例用法default_db_path = "example.db"def __init__(self, db_file=None):self.db_file = db_file or self.default_db_pathself.conn = self.create_connection()self.initialize_database()def create_connection(self):# 创建数据库连接try:conn = sqlite3.connect(self.db_file)print(f"Connected to {self.db_file}")return connexcept sqlite3.Error as e:print(e)return Nonedef initialize_database(self):# 初始化数据库,包括创建表格if self.conn:create_table_sql = """CREATE TABLE IF NOT EXISTS example_table (id INTEGER PRIMARY KEY,name TEXT NOT NULL,age INTEGER);"""self.create_table(create_table_sql)else:print("Failed to initialize database. Connection not established.")def create_table(self, create_table_sql):# 创建表格try:cursor = self.conn.cursor()cursor.execute(create_table_sql)print("Table created successfully")except sqlite3.Error as e:print(e)def execute_query(self, query, data=None):# 执行查询操作try:cursor = self.conn.cursor()if data:cursor.execute(query, data)else:cursor.execute(query)self.conn.commit()print("Query executed successfully")except sqlite3.Error as e:print(e)def fetch_all(self, query):# 获取所有记录try:cursor = self.conn.cursor()cursor.execute(query)rows = cursor.fetchall()return rowsexcept sqlite3.Error as e:print(e)def delete_record(self, table_name, record_id):# 删除特定记录try:cursor = self.conn.cursor()cursor.execute(f"DELETE FROM {table_name} WHERE id = ?;", (record_id,))self.conn.commit()print(f"Record with ID {record_id} deleted successfully from {table_name}")except sqlite3.Error as e:print(e)def delete_all_records(self, table_name):# 删除表格中的所有记录try:cursor = self.conn.cursor()cursor.execute(f"DELETE FROM {table_name};")self.conn.commit()print(f"All records deleted successfully from {table_name}")except sqlite3.Error as e:print(e)def drop_table(self, table_name):# 删除表格try:cursor = self.conn.cursor()cursor.execute(f"DROP TABLE IF EXISTS {table_name};")self.conn.commit()print(f"Table {table_name} dropped successfully")except sqlite3.Error as e:print(e)# # 示例用法
# db_path = "example.db"
#
# # 实例化 SQLiteHandler
db_handler = SQLiteHandler()# 插入数据
insert_query = "INSERT INTO example_table (name, age) VALUES (?, ?);"
data_to_insert = ("John Doe", 35)
db_handler.execute_query(insert_query, data_to_insert)# 查询数据
select_query = "SELECT * FROM example_table;"
result = db_handler.fetch_all(select_query)
print(result)# 更新数据
# update_query = "UPDATE example_table SET age=? WHERE name=?;"
# data_to_update = (31, "John Doe")
# db_handler.execute_query(update_query, data_to_update)# 查询更新后的数据
result_after_update = db_handler.fetch_all(select_query)
print(result_after_update)# 删除名为example_table的表格中ID为1的记录
# db_handler.delete_record("example_table", 3)# 删除表格
# table_to_drop = "example_table"
# db_handler.drop_table(table_to_drop)# 关闭数据库连接
db_handler.conn.close()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/615308.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spring面试整理-Spring的AOP

Spring的面向切面编程(AOP)是其核心功能之一,它允许开发者在不改变原有代码的情况下,增加额外的行为(如日志记录、事务管理、安全检查等)。AOP 通过定义"切面"(aspects)和"通知"(advice)来实现这一功能。 AOP概念 切面(Aspect):切面是模块化的…

TCP 和 UDP 的区别

TCP(Transmission Control Protocol)和UDP(User Datagram Protocol)是两种主要的传输层协议,它们在网络通信中有一些关键的区别: (1)http1 / http2 基于 tcp 协议,https …

XCODE IOS 静态链接库替换升级

XCODE 版本15.2. 一个很久需求没更新的IOS 应用,近来有新需求要开发。 拉下代码运行,出现了个BAD_ACCESS错误。出错的位置位于一个调用的第三方的.a静态库内部。因为调用代码并没有修改,很容易想到可能XCODE相关升级,导致的问题。…

无监督学习Principal Component Analysis(PCA)精简高维数据

目录 介绍 一、PCA之前 二、PCA之后 介绍 Principal Component Analysis (PCA) 是一种常用的数据降维和特征提取技术。PCA通过线性变换将高维数据映射到低维空间,从而得到数据的主要特征。PCA的目标是找到一个正交基的集合,使得将数据投影到这些基…

Android Studio 分别运行flutter 的debug和release版本

前言 由于在Android Studio 没找到运行release版本的入口,现在通过命令行运行 1.release版本 运行release版本的话直接执行下面命令3 flutter run --release相关命令统计 1.生成apk flutter build apk2.安装apk: flutter install3.运行release版本 flutter …

【期末不挂科-单片机考前速过系列P11】(第十一章:单片机的并行拓展例题)经典例题盘点(带图解析)

前言 大家好吖,欢迎来到 YY 滴单片机系列 ,热烈欢迎! 本章主要内容面向接触过单片机的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的…

初探UAF漏洞(3)

构造exp #include <iostream> #include <Windows.h>typedef void(*FunctionPointer) ();typedef struct _FAKE_USE_AFTER_FREE {FunctionPointer countinter;char bufffer[0x54]; }FAKE_USE_AFTER_FREE, * PUSE_AFTER_FREE;void ShellCode() {_asm{noppushadmov e…

github上的python图片转excel,pytesseract安装相关问题

问题1&#xff1a;明明都pip install pytesseract&#xff0c;但是就是安装不上 pytesseract 未安装链接: https://pan.baidu.com/s/1I4HzCgO4mITWTcZFkdil6g?pwdafes 提取码: afes 安装后一路next&#xff0c;然后配置环境变量 C:\Program Files\Tesseract-OCR新建一个系统…

第十九章 类的继承

文章目录 一、继承二、原型三、原型和实例关系的检测 一、继承 面向对象三大特点&#xff1a;封装&#xff0c;继承&#xff0c;多态 封装&#xff1a;打包继承&#xff1a;一个对象A不具有某个功能a&#xff0c;通过某种方式使用了对象B的a功能 的过程多态&#xff1a;对象或…

【SQL server】DML触发器监控数据库字段值改变

文章目录 前言DML触发器基本思路创建触发器固定字段触发示例完整示例代码变量声明查询新旧值插入数据到日志表效果视频动态字段触发示例完整代码示例触发器基本信息变量声明定义游标打开游标临时表创建循环处理字段

c++学习:容器stack栈+queue+map(简易输入法)+deque

目录 stack 模板原型 头文件 模板的成员类型和成员对象和成员函数 栈类模板的容器对象 实例 queue 模板原型 头文件 模板的成员类型和成员对象和成员函数 队列类模板的容器对象 实例 map 模板原型 头文件 模板的成员类型和成员对象和成员函数 关联类模板的容器…

VScode远程连接开发嵌入式开发板

在做嵌入式开发时&#xff0c;很多时候需要远程连接或者远程调试设备&#xff0c;这时可以通过VScode上的插件来很方便的进行远程连接和调试。 ssh远程连接嵌入式开发板&#xff1a; 1、安装vscode ssh远程插件&#xff1a;Remote-SSH。 2、点击""&#xff0c;输入…

构建基于RHEL8系列(CentOS8,AlmaLinux8,RockyLinux8等)的MySQL8.0.32的RPM包

本文适用&#xff1a;rhel8系列&#xff0c;或同类系统(CentOS8,AlmaLinux8,RockyLinux8等) 文档形成时期&#xff1a;2023年 因系统版本不同&#xff0c;构建部署应略有差异&#xff0c;但本文未做细分&#xff0c;对稍有经验者应不存在明显障碍。 因软件世界之复杂和个人能力…

mac安装mysql和docker

官方下载页面&#xff1a;https://dev.mysql.com/downloads/mysql/ 傻瓜式安装 配置环境变量&#xff1a; open ~/.zshrc插入下面的配置&#xff1a; export PATH$PATH:/usr/local/mysql/bin export PATH$PATH:/usr/local/mysql/support-files$ source ~/.bash_profile $ …

【投稿优惠|火热征稿】2024年测量控制与轨道交通国际学术会议(ICMCRT 2024)

【投稿优惠|火热征稿】2024年测量控制与轨道交通国际学术会议(ICMCRT 2024) 2024 International Conference Measurement Control and Rail Transit(ICMCRT 2024) 一、【会议简介】 业内专家认为&#xff0c;在当今以信息技术带动工业化发展的时代&#xff0c;测量控制与仪器仪…

监督学习 - 逻辑回归(Logistic Regression)

什么是机器学习 逻辑回归&#xff08;Logistic Regression&#xff09;虽然名字中包含"回归"一词&#xff0c;但实际上是一种用于解决分类问题的统计学习方法&#xff0c;而不是回归问题。它是一种线性模型&#xff0c;常用于二分类问题&#xff0c;也可以扩展到多分…

Inis博客系统本地部署结合内网穿透实现远程访问本地站点

文章目录 前言1. Inis博客网站搭建1.1. Inis博客网站下载和安装1.2 Inis博客网站测试1.3 cpolar的安装和注册 2. 本地网页发布2.1 Cpolar临时数据隧道2.2 Cpolar稳定隧道&#xff08;云端设置&#xff09;2.3.Cpolar稳定隧道&#xff08;本地设置&#xff09; 3. 公网访问测试总…

socket.d.js v2.3.4 支持“微信“、“uniapp“

Socket.D 是基于"事件"和"语义消息""流"的网络应用层协议。有用户说&#xff0c;“Socket.D 之于 Socket&#xff0c;尤如 Vue 之于 Js、Mvc 之于 Http”。支持 tcp, udp, ws, kcp 传输。协议特点可参考《官网介绍》。 Socket.D.js 兼容更新说…

搭建sprinboot服务环境

搭建sprinboot服务环境 安装jdk安装nginx安装Redis安装MySQL一 下载MySQL二 安装MySQL三 启动mysql服务获取初始化密码四 登陆MySQL五 修改密码六 设置远程访问七 相关问题错误&#xff1a;1819错误&#xff1a;1251 或 2059错误&#xff1a;10060忽略表名大小写 记录搭建sprin…

【Docker】概述与安装

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一. Docker的概述 1.Docker为什么出现 2…