PooledDB 模式
# coding=utf-8
from DBUtils.PooledDB import PooledDB
import cx_Oracle
pool = PooledDB(
creator = cx_Oracle, #使用链接数据库的模块
maxconnections = 5, #连接池允许的最大连接数,0和None表示没有限制
mincached = 2, #初始化时,连接池至少创建的空闲的连接,0表示不创建
maxcached = 3, #连接池空闲的最多连接数,0和None表示没有限制
maxshared = 0, #连接池中最多共享的连接数量,0和None表示全部共享,ps:其实并没有什么用,因为pymsql和MySQLDB等模块中的threadsafety都为1,所有值无论设置多少,_maxcahed永远为0,所以永远是所有链接共享
blocking = True, #链接池中如果没有可用共享连接后,是否阻塞等待,True表示等待,False表示不等待然后报错
setsession = [],#开始会话前执行的命令列表
ping = 0,#ping Mysql 服务端,检查服务是否可用
user = 'scott',
password = 'tiger',
dsn = '127.0.0.1:1521/oradb',
encoding='utf-8'
)
# 获取数据库连接的方式
conn = pool.connection()
例子
# coding=utf-8
from DBUtils.PooledDB import PooledDB
import cx_Oracle
pool = PooledDB(
creator = cx_Oracle, #使用链接数据库的模块
maxconnections = 5, #连接池允许的最大连接数,0和None表示没有限制
mincached = 2, #初始化时,连接池至少创建的空闲的连接,0表示不创建
maxcached = 3, #连接池空闲的最多连接数,0和None表示没有限制
maxshared = 0, #连接池中最多共享的连接数量,0和None表示全部共享,ps:其实并没有什么用,因为pymsql和MySQLDB等模块中的threadsafety都为1,所有值无论设置多少,_maxcahed永远为0,所以永远是所有链接共享
blocking = True, #链接池中如果没有可用共享连接后,是否阻塞等待,True表示等待,False表示不等待然后报错
setsession = [],#开始会话前执行的命令列表
ping = 0,#ping Mysql 服务端,检查服务是否可用
user = 'scott',
password = 'tiger',
dsn = '127.0.0.1:1521/oradb',
encoding='utf-8'
)
a=input('暂停,在plsql中查询session数量')
# 获取数据库连接的方式
conn = pool.connection()
cursor=conn.cursor()
cursor.prepare('select * from student')
cursor.execute(None)
rows=cursor.fetchall()
for item in rows:
print(item)
cursor.close()
conn.close()
a=input('暂停,关闭连接后,在plsql中查询session数量')
查询session数量的sql:
select * from v$session where username='SCOTT'