mysql使用连接池
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
文章目录
- 前言
- 一、mysql连接池?
- 二、使用步骤
- 1.引入库
前言
提示:这里可以添加本文要记录的大概内容:
例如:
提示:以下是本篇文章正文内容,下面案例可供参考
一、mysql连接池?
安装包 DBUtils
pip install DBUtils==1.3
二、使用步骤
1.引入库
代码如下(示例):
# -*- coding:utf-8 -*-
# author: cai bao jun
# datetime: 2024/3/1 11:38
# @File: 4数据库操作2.pyimport pymysql
from DBUtils.PooledDB import PooledDB
import datetimefrom logger import logger#### DBUtils 1.3
#### DBUtils 1.3
#### DBUtils 1.3class MysqlConfig(object):database = "test2022" # 测试 trainerNhost = "127.0.0.1"user = "root"port = 3306password = "root"# Mysql数据库相关操作
# @Singleton
class DMLMysql(object):_pool = None_isinstance = None_flag = Truedef __new__(cls, *args, **kwargs):if not cls._isinstance:print('new')cls._pool = PooledDB(creator=pymysql, # 使用链接数据库的模块mincached=10, # 初始化时,链接池中至少创建的链接,0表示不创建maxconnections=200, # 连接池允许的最大连接数,0和None表示不限制连接数blocking=True, # 连接池中如果没有可用连接后,是否阻塞等待。True,等待;False,不等待然后报错host=MysqlConfig.host,port=MysqlConfig.port,user=MysqlConfig.user,password=MysqlConfig.password,database=MysqlConfig.database,)cls._isinstance = super().__new__(cls)return cls._isinstancedef __init__(self, host=MysqlConfig.host, database=MysqlConfig.database, user=MysqlConfig.user, password=MysqlConfig.password, port=MysqlConfig.port):try:# print('开始链接mysql22332')self.database = databaseself.pool = DMLMysql._poolexcept Exception as e:logger.error(f"database connect error message is {str(e)}")passpassdef open(self):self.conn = self.pool.connection()self.cursor = self.conn.cursor() # 表示读取的数据为字典类型return self.conn, self.cursordef close(self, cursor, conn):cursor.close()conn.close()def execute_sql(self, sqlQuery, value):""":param sqlQuery: 拼接好的sql语句:param value: 需要拼接的值:return:"""try:conn, cursor = self.open()conn.ping(reconnect=True) # 超时断开重连cursor.execute(sqlQuery, value)# logger.info('数据执行成功!')except Exception as e:logger.error(f"database name is {self.database} error info is:{str(e)},sql is : {sqlQuery}")conn.rollback()else:conn.commit()finally:self.close(cursor, conn)def select_sql(self,sqlQuery, value):ret = Nonetry:conn, cursor = self.open()conn.ping(reconnect=True) # 超时断开重连cursor.execute(sqlQuery, value)ret = cursor.fetchall()# logger.info('查询数据执行成功!')except Exception as e:logger.error(f"database name is {self.database} error info is:{str(e)},sql is : {sqlQuery}")# self.conn.rollback()finally:self.close(cursor, conn)return retdef __del__(self):# self.cursor.close()# self.conn.close()# print('关闭mysql22332')passif __name__ == '__main__':dml = DMLMysql()select_sql = 'select author_id,category_id,views from article where id=%s'value = (1,)ret1 = dml.select_sql(sqlQuery=select_sql,value=value)print(ret1)dml1 = DMLMysql()dml2 = DMLMysql()print(id(dml1))print(id(dml2))print(id(dml1)==id(dml2))pass相关文章:
mysql使用连接池
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、mysql连接池?二、使用步骤1.引入库 前言 提示:这里可以添加本文要记录的大概内容: 例如: 提示:…...
06. Nginx进阶-Nginx代理服务
proxy代理功能 正向代理 什么是正向代理? 正向代理(forward proxy),一个位于客户端和原始服务器之间的服务器。 工作原理 为了从原始服务器获取内容,客户端向代理发送一个请求并指定目标(即原始服务器…...
STM32 (1)
1.基本信息 stm32是由ST公司生产的一种32位微控制器(单片机)。 1.1 各种型号 stm32是32位单片机的总称,有多种不同的系列。 32即用32个比特位表示一个地址,寻址范围:0x00000000 --0xffffffff (4GB) 1.2 存储密度 …...
Spring初始(相关基础知识和概述)
Spring初始(相关基础知识和概述) 一、Spring相关基础知识(引入Spring)1.开闭原则OCP2.依赖倒置原则DIP3.控制反转IoC 二、Spring概述1.Spring 8大模块2.Spring特点2.Spring的常用jar文件 一、Spring相关基础知识(引入S…...
【Swift 周报 第四十七期
文章目录 前言新闻和社区苹果财报来袭:营收有望再创新高 巴克莱或将惨遭打脸?Apple 为在全球范围内提供迷你 App 和游戏访问的流媒体游戏服务和 App 发布新选项Swift Student Challenge 将于 2 月 5 日开放申请 提案通过的提案正在审查的提案 Swift论坛推…...
STM32(16)使用串口向电脑发送数据
发送字节 发送数组 发送字符和字符串 字符: 字符串: 字符串在电脑中以字符数组的形式存储...
利用大模型技术进行测试用例推荐如何实现
利用大模型技术进行测试用例推荐,可以通过以下步骤实现: 确定目标和需求:明确测试用例推荐的目标和需求,例如推荐哪些类型的测试用例、推荐的数量、推荐的准确率等。 收集数据:收集历史测试用例、需求文档、设计文档等…...
Linux学习:初识Linux
目录 1. 引子:1.1 简述:操作系统1.2 学习工具 2. Linux操作系统中的一些基础概念与指令2.1 简单指令2.2 ls指令与文件2.3 cd指令与目录2.4 文件目录的新建与删除指令2.5 补充指令1:2.6 文件编辑与拷贝剪切2.7 文件的查看2.8 时间相关指令2.9 …...
Python CGI编程错误汇总
文章目录 1 前言2 测试文件3 问题总结 1 前言 在学习Python CGI编程时,运行起来总是有各种各样的问题,故将问题进行总结,以便新接触Python的童鞋能少走弯路 以下均为本人遇到对应报错的解决方案,可能存在其他问题但报错相同的情况…...
第十三届蓝桥杯大赛软件赛省赛C/C++ 大学 B 组 统计子矩阵
#include<iostream> #include<algorithm> #include<cstring> #include<string> #include<vector> #include<queue>using namespace std;int cnt,temp; int n,m,K; int a[505][505]; int pre[505][505];//二维前缀和void sol() {cin>>…...
计算机网络实验 基于ENSP的协议分析
实验二 基于eNSP的协议分析 一、实验目的: 1)熟悉VRP的基本操作命令 2)掌握ARP协议的基本工作原理 3)掌握IP协议的基本工作原理 4)掌握ICMP协议的基本工作原理 二、实验内容: 1、场景1:两台PC机…...
Java实现手机库存管理
一、实验任务 编写一个程序,模拟库存管理系统。该系统主要包括系统首页、商品入库、商品显示和删除商品功能。每个功能的具体要求如下: 1.系统的首页:用于显示系统所有的操作,并且可以选择使用某一个功能。 2.商品入库功能&…...
单片机入门:LED数码管
LED数码管 LED数码管:由多个发光二极管封装在一起组成的“8”字型的器件。如下图所示: 数码管引脚定义 一位数码管 内部由八个LED组成。器件有十个引脚。 对于数码管内的8个LED有共阴和共阳两种连接方法。 共阴:将8个LED的阴极都连接到一…...
软考信息系统项目管理师零基础怎么学习?
软考考信息系统项目管理师,零基础怎么入手高项? 要我说对于没有基础的人群来说零基础考信息系统项目管理师还是有一定的难度的,难就难在需要时间去了解基础,而相对于系统分析师、系统构架设计师、网络规划设计师、系统规划与管理…...
【轮式平衡机器人】——TMS320F28069片内外设之Timer_IT(补:CCS程序烧录方法)
引入 Timer_IT 指的是 TMS320F28069 的定时器中断功能。在微控制器或数字信号控制器中,定时器是一个非常重要的外设,它可以用来产生固定时间间隔的中断,或者用来精确计算时间。 Timer_IT 的主要特点如下: 定时功能:…...
安装Proxmox VE虚拟机平台
PVE是专业的虚拟机平台,可以利用它安装操作系统,如:Win、Linux、Mac、群晖等。 1. 下载镜像 访问PVE官网,下载最新的PVE镜像。 https://www.proxmox.com/en/downloads 2. 下载balenaEtcher balenaEtcher用于将镜像文件&#…...
后端项目访问不了
问题: 后端启动不了,无法访问网站 原因: 1.防火墙没有关 2.有缓存 3、项目没有启动 4、docker没有启动 解决: 先查看进程:docker ps,必须有三个 详细查看:docker ps -a exited代表没有开启…...
Qt 运行一个实例进程
QLocalSocket QLocalServer 逻辑:首先一个新的实例启动时,将尝试连接到同一个本地服务器,如果连接失败,则表示第一个实例进程,创建一个本地服务器;否则,拉起已打开的实例进程。 main.cpp #i…...
Installing Git (安装 Git)
Installing Git [安装 Git] 1. Installing Git1.1. Description1.2. Installing on Linux (在 Linux 上安装)1.3. Installing on macOS (在 macOS 上安装)1.4. Installing on Windows (在 Windows 上安装)1.5. Installing from Source (从源代码安装) 2. sudo apt-get install …...
Android 拍照本地图片选择框架适配
前言 通常技术方案的选择、会带来后续一些不可控的东西,这也是没法避免的,程序开发者中同时面对、测试、领导、产品各种要求。同时在网络上查找的资料也只是很旧的,不一定适合新设备,需要推倒重新弄 1、解决方案通过意图选择器做…...
PyTorch 2.9镜像使用指南:Jupyter与SSH两种方式详细解析
PyTorch 2.9镜像使用指南:Jupyter与SSH两种方式详细解析 1. 镜像概述 PyTorch 2.9镜像是一个开箱即用的深度学习开发环境,预装了PyTorch 2.9框架和CUDA工具包。这个镜像特别适合需要快速搭建GPU加速开发环境的用户,无论是进行模型训练、推理…...
Linux中的more 和 less区别对比分析
在 Linux/Unix 系统中,more 和 less 都是用于分页查看文本文件的命令,但 less 是 more 的增强版,功能更强大。以下是它们的核心区别和用法对比:1. 基础功能对比特性moreless(更强大)向前翻页❌ 仅支持向下翻…...
Helm与Vault整合的实践之旅
在容器化和微服务架构的今天,管理配置文件和敏感信息变得愈发重要。使用Helm进行应用部署时,结合Vault来管理和注入机密信息是一个很好的实践。本文将通过一个实际的例子,详细说明如何在Helm Chart中使用Vault来配置和注入机密信息。 背景 Helm是一个包管理工具,可以帮助…...
MATLAB/Simulink 光伏混合储能的 VSG 构网型系统并网仿真探索
MATLAB/Simulink光伏混合储能的VSG构网型系统并网仿真 构网型储能系统由光伏模块进行发电,蓄电池和超级电容构成混合型储能系统,并网控制采用虚拟同步机VSG进行控制。 其中,混合储能HESS由蓄电池和超级电容组成,对光伏并网系统实现…...
Stable Yogi Leather-Dress-Collection 不同采样器(Sampler)生成效果对比测评
Stable Yogi Leather-Dress-Collection 不同采样器(Sampler)生成效果对比测评 最近在玩 Stable Yogi 这个专门生成皮革服装的模型,发现一个挺有意思的现象:同样的描述词,换一个采样器,出来的图可能天差地别…...
多智能体强化学习调参新思路:为什么你的MAPPO在离散环境不收敛?
多智能体强化学习调参新思路:为什么你的MAPPO在离散环境不收敛? 当你在连续环境中轻松实现MAPPO(Multi-Agent Proximal Policy Optimization)的收敛后,转向离散环境时却遭遇了令人沮丧的失败——这不是个例。许多中高级…...
OpenClaw数据可视化:Qwen3-32B分析CSV文件并生成图表报告
OpenClaw数据可视化:Qwen3-32B分析CSV文件并生成图表报告 1. 为什么需要自动化数据分析 上周我接手了一个紧急任务:分析过去半年的销售数据并生成可视化报告。当我手动处理完第三个CSV文件时,突然意识到——这种重复性工作正是AI最擅长的领…...
大数据可视化
1. 传播分析评估维度:包含认知(知晓、记忆)、行动(点击、搜索)、情感(喜好、美誉)三个层面传统评估:主要关注广告点击率和观看次数等表面指标深度评估:需要分析广告观看后…...
B0505S-2WR3 适配优选 DB2-05S05LS,DC-DC 电源模块参数与场景深度解析
在工业控制、仪器仪表、通信接口等标准化电路设计中,2W 级 5V 转 5V 隔离 DC-DC 模块是高频应用的核心器件。DB2-05S05LS 和 B0505S-2WR3 作为该功率段的主流型号,在电气规格、物理规格与场景适配性上呈现高度契合,为硬件工程师的标准化选型提…...
收藏!小白程序员必看:5大AI Agent框架深度解析,助你轻松入门大模型时代!
2026年,GitHub上AI Agent相关项目星标总量已突破500万。但大多数团队在选型时只看星星数,结果花3个月踩坑才明白——框架没有最好,只有最合适。今天我们不吹不黑,从架构哲学、学习曲线、生产成熟度、多Agent协作、长任务支持、可观…...
