连接mysql为什么要单例_mysql的链接单例模式和线程池的优劣性

这篇博客探讨了在连接MySQL数据库时使用单例模式的意义和线程池的优劣性。文章通过示例代码展示了在多线程环境下,由于线程并发导致的数据库连接异常,引发了'NoneType' object has no attribute 'read'的问题。内容涉及到Python的pymysql库,DBUtils模块以及多线程操作。作者分析了错误原因并提出了可能的解决方案,强调了正确管理和复用数据库连接的重要性。
摘要由CSDN通过智能技术生成

E:\python\python.exe F:/pycharm测试功能文件夹/single_pool/test_code.py0.002000093460083008Exceptionin thread Thread-1:

Traceback (most recent call last):

File"E:\python\lib\threading.py", line 926, in_bootstrap_inner

self.run()

File"E:\python\lib\threading.py", line 870, inrun

self._target(*self._args, **self._kwargs)

File"F:/pycharm测试功能文件夹/single_pool/test_code.py", line 10, intest

single_instance.get_all()

File"F:\pycharm测试功能文件夹\single_pool\test_mysql\mysql_pool_test.py", line 47, inget_all

cursor.execute(sql)

File"E:\python\lib\site-packages\DBUtils\SteadyDB.py", line 605, intough_method

result= method(*args, **kwargs) #try to execute

File "E:\python\lib\site-packages\pymysql\cursors.py", line 170, inexecute

result=self._query(query)

File"E:\python\lib\site-packages\pymysql\cursors.py", line 328, in_query

conn.query(q)

File"E:\python\lib\site-packages\pymysql\connections.py", line 517, inquery

self._affected_rows= self._read_query_result(unbuffered=unbuffered)

File"E:\python\lib\site-packages\pymysql\connections.py", line 732, in_read_query_result

result.read()

File"E:\python\lib\site-packages\pymysql\connections.py", line 1075, inread

first_packet=self.connection._read_packet()

File"E:\python\lib\site-packages\pymysql\connections.py", line 674, in_read_packet

recv_data=self._read_bytes(bytes_to_read)

File"E:\python\lib\site-packages\pymysql\connections.py", line 691, in_read_bytes

data=self._rfile.read(num_bytes)

AttributeError:'NoneType' object has no attribute 'read'[{'cow_number': '1002'}, {'cow_number': '1005'}, {'cow_number': '2007'}, {'cow_number': '3001'}, {'cow_number': '3004'}, {'cow_number': '868201803000700'}, {'cow_number': '868201803000704'}, {'cow_number': '868201803000702'}, {'cow_number': '868201803000696'}, {'cow_number': '868201803000701'}, {'cow_number': '868201803000697'}, {'cow_number': '868201803000699'}, {'cow_number': '868201803000689'}, {'cow_number': '868201803000682'}, {'cow_number': '868201803000695'}, {'cow_number': '868201803000688'}, {'cow_number': '868201803000681'}, {'cow_number': '868201803000703'}, {'cow_number': '868201803000674'}, {'cow_number': '868201803000651'}, {'cow_number': '180078'}, {'cow_number': '180025'}, {'cow_number': '130558'}, {'cow_number': '160080'}, {'cow_number': '160090'}, {'cow_number': '170071'}, {'cow_number': '170087'}, {'cow_number': '170099'}, {'cow_number': '170135'}, {'cow_number': '150153'}, {'cow_number': '160073'}, {'cow_number': '170083'}, {'cow_number': '150037'}, {'cow_number': '150249'}, {'cow_number': '160168'}, {'cow_number': '160002'}, {'cow_number': '170080'}, {'cow_number': '140157'}, {'cow_number': '160225'}, {'cow_number': '140161'}, {'cow_number': '140588'}, {'cow_number': '160804'}, {'cow_number': '140170'}, {'cow_number': '160068'}, {'cow_number': '16411'}, {'cow_number': '160527'}, {'cow_number': '180070'}, {'cow_number': '180026'}, {'cow_number': '180034'}, {'cow_number': '180004'}, {'cow_number': '1003'}, {'cow_number': '130653'}, {'cow_number': '160170'}, {'cow_number': '180753'}, {'cow_number': '180795'}, {'cow_number': '180698'}, {'cow_number': '180675'}, {'cow_number': '20191001'}, {'cow_number': '20191002'}, {'cow_number': '140680'}, {'cow_number': '170058'}, {'cow_number': '170159'}, {'cow_number': '160059'}, {'cow_number': '170095'}, {'cow_number': '150092'}, {'cow_number': '20200221'}, {'cow_number': '20200224'}, {'cow_number': '20200226'}, {'cow_number': '130739'}, {'cow_number': '160169'}, {'cow_number': '150641'}, {'cow_number': '160829'}, {'cow_number': '20200301'}, {'cow_number': '2020030111'}, {'cow_number': '202003011112'}, {'cow_number': '170151'}, {'cow_number': '150350'}, {'cow_number': '180007'}, {'cow_number': '110615'}, {'cow_number': '160250'}, {'cow_number': '170107'}, {'cow_number': '150039'}, {'cow_number': '170153'}, {'cow_number': '110926'}, {'cow_number': '170136'}, {'cow_number': '160097'}, {'cow_number': '160423'}, {'cow_number': '160329'}, {'cow_number': '170069'}, {'cow_number': '170152'}, {'cow_number': '140738'}, {'cow_number': '110301'}, {'cow_number': '170092'}, {'cow_number': '160098'}, {'cow_number': '150090'}, {'cow_number': '180748'}]

[{'cow_number': '1002'}, {'cow_number': '1005'}, {'cow_number': '2007'}, {'cow_number': '3001'}, {'cow_number': '3004'}, {'cow_number': '868201803000700'}, {'cow_number': '868201803000704'}, {'cow_number': '868201803000702'}, {'cow_number': '868201803000696'}, {'cow_number': '868201803000701'}, {'cow_number': '868201803000697'}, {'cow_number': '868201803000699'}, {'cow_number': '868201803000689'}, {'cow_number': '868201803000682'}, {'cow_number': '868201803000695'}, {'cow_number': '868201803000688'}, {'cow_number': '868201803000681'}, {'cow_number': 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值