pymysql 中的数据库的“游标”和“连接池”解析

1 游标

游标(Cursor)是处理数据的一种方法,为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力。可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理
通俗来说就是,操作数据和获取数据库结果都要通过游标来操作。
使用游标进行数据库操作的步骤如下:

  1. cursor(),创建游标对象
Cus = connect_mysql().cursour()
  1. execute(sql),执行语句的方法。当我们定义了一个sql语句的时候可以用这个方法来执行这个语句。
sql = select * from table1  
cus.execute(sql) 
  1. commit(),提交命令,将更改提交到数据库
cus.commit()
  1. fetchall(),取所有结果,就是获得执行sql语句后获得的结果。游标常用的方法
data=cus.fetchall()
  1. close():关闭此游标对象
cus.close()

其他游标操作:
7. fetchmany([size = cursor.arraysize]):得到结果集的下几行
8. executemany (sql, args):执行多个数据库查询或命令,尽量不使用executemany,通过程序循环不断调用excute函数

2 数据库连接池

python中可以使用pymysql进行数据库进行操作,但是每次进行数据库操作时,都要重新建立与数据库的来连接,而且访问数量达到一定数量时会大大耗费资源。因此,实际使用中,通常会使用数据库的连接池技术,来访问数据库达到资源复用的目的。数据库连接池其实就是和数据库建立了持续的TCP连接,从而达到数据库连接的资源复用。

实例:

def connect_myssql():
	conn = spool.connection()  #以后每次需要数据库连接就是用connection()函数获取连接
	cur = conn.cursor()
	SQL = "select * from tmp;"
	r = cur.execute(SQL)
	r = cur.fetchall()
	print(r)
	cur.close()
	conn.close()
  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
好的,下面是安装pymysql连接池的步骤: 1. 首先,确保你已经安装了pymysql模块。如果没有安装,可以使用以下命令进行安装: ```python pip install pymysql ``` 2. 接下来,安装pymysql连接池模块。可以使用以下命令进行安装: ```python pip install DBUtils ``` 3. 安装完成后,可以使用以下代码进行测试: ```python from DBUtils.PooledDB import PooledDB import pymysql # 创建数据库连接池 pool = PooledDB( creator=pymysql, # 使用pymysql连接数据库 maxconnections=5, # 连接池允许的最大连接数,0和None表示没有限制 mincached=2, # 初始化时,连接池至少创建的空闲的连接,0表示不创建 maxcached=5, # 连接池最多闲置的连接,0和None表示没有限制 maxshared=3, # 连接池最多共享的连接数量,0和None表示全部共享(其实没什么用) blocking=True, # 连接池如果没有可用连接后,是否阻塞等待 maxusage=None, # 一个连接最多被重复使用的次数,None表示无限制 setsession=[], # 开始会话前执行的命令列表。如:["set datestyle to ...", "set time zone ..."] ping=0, # ping MySQL服务端,检查是否服务可用。 host='localhost', port=3306, user='root', password='123456', database='test', charset='utf8mb4' ) # 获取数据库连接 conn = pool.connection() # 获取游标 cursor = conn.cursor() # 执行SQL语句 sql = 'SELECT * FROM test_table' cursor.execute(sql) results = cursor.fetchall() for row in results: print(row) # 关闭游标和连接 cursor.close() conn.close() ``` 这样,就可以使用pymysql连接池了。注意,这里的参数是示例,需要根据实际情况进行修改。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

energy_百分百

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值