資料儲存到資料庫中,當然少不了獲取連線及執行sql
使用連線池,獲取連線
@classmethod
defgetconnection
(cls):
''' @return: 返回乙個資料庫連線的例項
'''logger = logging.getlogger('mylogger.myutil.myutil')
try:
if myutil.cnxpool is
none:
user = myutil.loadproperty('mysql', 'user')
passwd = myutil.loadproperty('mysql', 'password')
host = myutil.loadproperty('mysql', 'host')
db = myutil.loadproperty('mysql', 'database')
dbconfig =
myutil.cnxpool = mysql.connector.pooling.mysqlconnectionpool(pool_name="mypool", pool_size=10, **dbconfig)
except mysql.connector.error as err:
myutil.cnxpool = none
if err.errno == errorcode.er_access_denied_error:
logger.info("使用者名稱或密碼不對")
elif err.errno == errorcode.er_bad_db_error:
logger.info("資料庫不存在")
else:
logger.debug(err)
raise exception('can\'t connect to mysql server')
return myutil.cnxpool.get_connection()
執行sql
def
store2db
(self, sql, values):
''' 儲存需求到表中
@param sql: 需要執行的sql
@param values: 元組型別,欄位的值
@return: 執行結果, true or false
'''# get connection
cnx = myutil.getconnection()
# get cursor
cursor = cnx.cursor()
try:
# execute sql
cursor.execute(sql, values)
res = true
self.logger.info('add view success')
except exception, e:
self.logger.debug(e)
res = false
else:
# commit
cnx.commit()
# close resources
cursor.close()
myutil.closeconn(cnx)
return res
mysql連線池 順序 Mysql 連線池
通常,如果我們的服務涉及到mysql的操作,當乙個新的請求進來的時候,可以先連線mysql,使用完之後再斷開連線即可。但這樣做有個弊端,當請求量巨大時,會在瞬間有大量的資料庫連線與斷開操作,這是非常影響 mysql 效能的做法。此時,我們就需要使用mysql連線池。在 python 服務中使用 my...
mysql連線池的概念 連線池概念
1 連線池是乙個程序 多個連線是在乙個程序裡面儲存 管理的。這個程序儲存所有的連線,當我們開啟連線,如果有未用連線可用,則返回該連線。如果池中的連線都用完了,則建立乙個新的連線儲存到連線池。而但我們關閉連線的時候,連線池裡面並不關閉連線,而是返回連線池中並標記為可重用的狀態,等待重新連線直到等待超時...
mysql資料連線池
示例 usr bin python coding utf 8 time 2017 11 21 0021 10 52 author liaochao file demo2.py import mysqldb from dbutils.pooleddb import pooleddb db config...