mysql 连接池 游标_(六)6-2Mysql游标和连接池

本文介绍了MySQL数据库中的游标概念及常用方法,如创建游标对象、关闭游标、获取数据等,并通过示例展示了如何使用Python的MySQLdb模块进行操作。此外,还探讨了数据库连接池的概念,推荐了Python的DBUtils库,特别是PooledDB模块,用于实现线程安全的数据库连接池管理,提供连接复用和自动管理。
摘要由CSDN通过智能技术生成

游标

游标提供了一种对从表中检索出的数据进行操作的灵活手段,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。游标总是与一条SQL选择语句相关联因为游标由结果集(可以是零条、一条或相关的选择语句检索出的多条记录)和结果集中指向特定记录的游标位置组成。当决定对结果集进行处理时,必须声明一个指向该结果集的游标。

常用方法:

cursor():创建游标对象

close():关闭此游标对象

fetchone():得到结果集的下一行

fetchmany([size=cursor.arraysize]):得到结果集的下几行

fetchall():得到结果集的所有行

execute(sql[,args]):执行一个 数据库查询或命令

executemany(sql,args):执行多个数据库查询或命令

例子:

connect.py

#!/usr/bin/env python#coding:utf8

importMySQLdbdefconnect_mysql():

db_config={"host":"127.0.0.1","port":3306,"user":"root","passwd":"123456","db":"world","charset":"utf8",

}try:

cnx= MySQLdb.connect(**db_config)exceptException as e :raiseereturn cnx

#!/usr/bin/env python#coding:utf8

importMySQLdbfrom connect importconnect_mysqlif __name__ == "__main__":

sql= "select * from city"cnx=connect_mysql()

cus=cnx.cursor()#print(dir(cus))

try:

cus.execute(sql)

result=cus.fetchone()print(result)

result1= cus.fetchmany(3)print(result1)#result3 = cus.fetchall()

#print(result3)

cus.close()exceptException as e :

cnx.rollback()raiseefinally:

cnx.close()

mysql连接池

Python DBUtils

DBUtils是一套Python数据库连接池包,并允许对非线程安全的数据库接口进行线程安全包装。DBUtils来自Webware for Python。

DBUtils提供两种外部接口:

PersistentDB :提供线程专用的数据库连接,并自动管理连接。

PooledDB :提供线程间可共享的数据库连接,并自动管理连接。

下载地址:http://www.webwareforpython.org/downloads/DBUtils/

或者Pip install DBUtils

例子:

#!/usr/bin/env python#coding:utf8

importMySQLdbfrom DBUtils.PooledDB importPooledDB

db_config={"host": "127.0.0.1","port": 3306,"user": "root","passwd": "123456","db": "world","charset": "utf8",

}

pool= PooledDB(MySQLdb,5,**db_config)if __name__ == "__main__":

cnx=pool.connection()

cus=cnx.cursor()

sql= "select * from city"

try:

cus.execute(sql)

result=cus.fetchone()print(result)

cus.close()

cnx.commit()exceptException as e :raiseefinally:

cnx.close()

运行结果:

(1L, u'Kabul', u'AFG', u'Kabol', 1780000L)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值