class MysqlOptAsync(object):
def __init__(self, loop):
self.host = host
self.port = port
self.user = username
self.password = password
self.db = database
self._pool = None
self._loop = loop
# self._pool = None
async def pool(self):
if not self._pool:
print('开始生成链接池')
self._pool = await aiomysql.create_pool(host=self.host, port=self.port, user=self.user,password=self.password, db=self.db, loop=self._loop)
print(self._pool)
return self._pool
async def insertOpt(self, data=None):
async with self._pool.acquire() as conn:
async with conn.cursor() as cur:
sql = 'insert into test_asyncio(age) value(%s);'
try:
await cur.execute(sql, data)
await conn.commit()
except Exception as e:
print(e)
await conn.rollback()
# await cur.commit()
# print(await cur.last_id())
if __name__ == '__main__':
async def insert_data(obj_str=None):
for i in range(21, 40):
await obj_str.insertOpt(data=(i,))
async def main(loop):
mysql = MysqlOptAsync(loop=loop)
await mysql.pool()
await insert_data(obj_str=mysql)
loop = asyncio.get_event_loop()
loop.run_until_complete(main(loop))
数据库的异步操作,aiomysql
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- 在前面的系列博客中,我曾经介绍过,MongoDB数据库的C#驱动已经全面支持异步的处理接口,并且接口的定义几乎是重...
- 以下内容来自《Android 从小工到专家》 一、数据库升级 随着我们系统的升级,数据库一般也要跟着一起变化。An...