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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/713702.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/713702.shtml
英文地址,請注明出處:http://en.pswp.cn/news/713702.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

深入理解Flutter中的StreamSubscription和StreamController

在Flutter中,StreamSubscription和StreamController是處理異步數據流的重要工具。它們提供了一種方便的方式來處理來自異步事件源的數據。本文將深入探討它們的區別以及在實際應用中的使用場景。 StreamSubscription StreamSubscription代表了對數據流的訂閱&…

代碼隨想錄算法訓練營番外 刷題日記0301 || 29、兩數相除,31、下一個排列

29、兩數相除 思路:不斷相減就是求解的最直接方法,我這樣計算時間復雜度有點高 // 時間復雜度O(count*divisor) // 空間復雜度O(1)class Solution {int res 0;public int divide(int dividend, int divisor) {// dividend 是被除數if(dividend 0) …

技術棧選型的時候,ruby、go、java、vue、react應該怎么選擇?

選擇適合項目需求、團隊技術背景和偏好、開發速度、性能要求以及可擴展性的技術棧和框架是一個綜合考慮的過程,沒有一種通用的最佳選擇,取決于具體情況。 選擇Vue.js或React應該綜合考慮項目的需求、團隊的技術背景和偏好、生態系統的支持和發展趨勢等因…

隨記-點選驗證碼

文字驗證碼(點擊文字) 模板匹配(從一張圖片中尋找 icon),放棄,目前準確率不高,且處理過程復雜 灰度處理將 complete_image_path 截取并另存為 target_image_path, verify_image_path…

WPF真入門教程30--順風物流單據管理系統

1、教程回顧 到現在為止,真入門系列教程已完成了29刺由淺入深地講解,當然不可能講到了WPF的所有技能點,但讀者看到了wpf的內部各種功能及之間的聯系,在此基礎上,提供一個完整有效的綜合項目,本項目采用的是…

c++知識點之 --this

在成員函數中存在。struct和class每個成員函數都隱含一個名為this的指針形參,并且它是該成員函數的第一個參數,當某個對象調用成員函數時,就會把該對象的地址傳給被調用成員函數的隱式形參this。 this是一個指針 ,存放的是當前對象…

加密與安全_深入了解Hmac算法(消息認證碼)

文章目錄 PreHMAC概述常見的Hmac算法Code隨機的key的生成 KeyGeneratorHmacMD5用Hmac算法取代原有的自定義的加鹽算法 HmacMD5 VS MD5HmacSHA256 Pre 加密與安全_深入了解哈希算法中我們提到, 存儲用戶的哈希口令時,要加鹽存儲,目的就在于抵…

操作系統系列學習——CPU管理的直觀想法

文章目錄 前言CPU管理的直觀想法 前言 一個本碩雙非的小菜雞,備戰24年秋招,計劃學習操作系統并完成6.0S81,加油! 本文總結自B站【哈工大】操作系統 李治軍(全32講) 老師課程講的非常好,感謝 【…

OpenLayers線性漸變和中心漸變(徑向漸變)

目錄 1.前言2.添加一個面要素3.線性漸變3.1 第一個注意點3.2 第二個注意點 4.中心漸變(徑向漸變)5.總結 1.前言 OpenLayers官網有整個圖層的漸變示例,但是沒有單個要素的漸變示例,我們這里來補充一下。OpenLayers中的漸變是通過fi…

python defaultdict

python中的dict是一個重要的數據類型,知道如何使用這個數據類型很簡單,但是這個類型使用過程中容易進入一些誤區,這篇文章主要對defaultdict方法的講解,深入的了解dict數據類型。 字典(dictionary)數據類型…

編譯鏈接實戰(22)C/C++代碼覆蓋率統計報告生成

文章目錄 GCOV 工具簡介gcov 使用lcov相關編譯選項 GCOV 工具簡介 gcov是一個測試代碼覆蓋率的工具,它是 gcc 自帶的查看代碼覆蓋率的工具。 與GCC結合使用,可以分析您的程序以幫助創建更高效、運行更快的代碼,并發現程序中未經測試的部分。…

PCIE 4.0 L0s/L1/L2

L0是PCIE設備正常工作的狀態,當設備鏈路處于非工作狀態可以跳轉大相應的低功耗狀態,L0s是一種可以快速恢復到L0的低功耗狀態;L1必須經過Reovery狀態才可以恢復到L0狀態;L2需要從Detect開始逐步進入到L0狀態。它們的恢復時間依次延…

麒麟銀河操作系統V10部署ffmpeg(也能用于Linux系統)

麒麟銀河操作系統V10部署ffmpeg(也能用于Linux系統) 部署ffmpeg用來處理視頻的各種操作 想使用ffmpeg,要先安裝nasm,yasm,x264之后,否則會報錯 nkvers 查看麒麟操作系統版本 cat /proc/version #查看linux版本信息 uname -a …

Android修行手冊-Chaquopy中opencv、numpy的初步應用

Unity3D特效百例案例項目實戰源碼Android-Unity實戰問題匯總游戲腳本-輔助自動化Android控件全解手冊再戰Android系列Scratch編程案例軟考全系列Unity3D學習專欄藍橋系列ChatGPT和AIGC 👉關于作者 專注于Android/Unity和各種游戲開發技巧,以及各種資源分…

SpringBoot源碼解讀與原理分析(三十八)SpringBoot整合WebFlux(一)WebFlux的自動裝配

文章目錄 前言第13章 SpringBoot整合WebFlux13.1 響應式編程與Reactor13.1.1 命令式與響應式13.1.2 異步非阻塞13.1.3 觀察者模式13.1.4 響應性13.1.5 響應式流13.1.6 背壓13.1.7 Reactor13.1.7.1 Publisher13.1.7.2 Subscriber13.1.7.3 Subscription13.1.7.4 Processor13.1.7.…

BF算法實現(Python,C++)

BF算法,即暴力(Brute Force)算法,是普通的模式匹配算法,BF算法的思想就是將目標串S的第一個字符與模式串T的第一個字符進行匹配,若相等,則繼續比較S的第二個字符和 T的第二個字符;若不相等,則比…

Leetcoder Day32| 貪心算法part05

763.劃分字母區間 字符串 S 由小寫字母組成。我們要把這個字符串劃分為盡可能多的片段,同一字母最多出現在一個片段中。返回一個表示每個字符串片段的長度的列表。 示例: 輸入:S "ababcbacadefegdehijhklij"輸出:[9,7…

今日早報 每日精選15條新聞簡報 每天一分鐘 知曉天下事 3月2日,星期六

每天一分鐘,知曉天下事! 2024年3月2日 星期六 農歷正月廿二 1、 氣象局:3月份仍有5次冷空氣影響我國;全國多地或提前入春。 2、 央行:將外籍來華人員移動支付單筆交易限額由1000美元提高到5000美元。 3、 神舟十七號航…

全量知識系統問題及SmartChat給出的答復 之8 三套工具之3語法解析器 之1

Q19. 問題 : 解釋單詞解釋單詞occupied 的字典條目 (word-def occupiedinterest 5type EBsubclass SEBtemplate (script $Demonstrateactor nilobject nildemands nilmethod (scene $Occupyactor nillocation nil))fill (((actor) (top-of *actor-s…

【源碼】imx6ull實現觸摸屏單點實驗

一、本實驗實驗的器材: 1.正點原子imx6ull的阿爾法開發板v2.2 2.屏幕ALIENTEK 4.3 RGBLCD 二、實驗已經移植好的文件: 倉庫代碼:https://gitee.com/wangyoujie11/atkboard_-linux_-driver.git 1.文件說明 23_multitouch :驅動代…