Python通用的建立資料庫連線方法

2021-10-06 17:11:52 字數 2395 閱讀 7186

json檔案引數

'''

def __init__(self, host=none, user=none, password="",

database=none, port=0, unix_socket=none,

charset='', sql_mode=none,

read_default_file=none, conv=none, use_unicode=none,

client_flag=0, cursorclass=cursor, init_command=none,

connect_timeout=10, ssl=none, read_default_group=none,

compress=none, named_pipe=none,

autocommit=false, db=none, passwd=none, local_infile=false,

max_allowed_packet=16*1024*1024, defer_connect=false,

auth_plugin_map=none, read_timeout=none, write_timeout=none,

bind_address=none, binary_prefix=false, program_name=none,

server_public_key=none):

'''#例:

import pymysql

import json

class

basedao()

:'''

通用的建立資料庫連線方法

'''def__init__

(self,configfile=

'mysql.json'):

self.config=json.load(

open

(configfile)

) self.connection=

none

self.cursor=

none

pass

defgetconnection

(self)

:if self.connection!=

none

:return self.connection

try: self.connection=pymysql.connect(

** self.config)

self.connection.autocommit(0)

except exception as e:

print

("資料庫連線失敗,請檢查配置引數"

)pass

print

("資料庫連線成功"

)return self.connection

pass

defexecute

(self,sql,params=

none):

''' 封裝執行語句的方法

:param sql: 語句

:param params: 引數列表

:return:

'''result=

0try

: self.cursor=self.getconnection(

).cursor(

)if params:

#if none!=none if none:false

result=self.cursor.execute(sql,params)

else

: result=self.cursor.execute(sql)

except exception as e:

print

(e)return result

deffetch

(self)

:if self.cursor:

return self.cursor.fetchall(

)pass

# 處理事務管理

defcommit

(self)

:if self.connection:

self.connection.commit(

)pass

# 回滾

defrollback

(self)

:if self.connection:

self.connection.rollback(

)pass

# 關閉連線

defclose

(self)

:if self.connection:

self.connection.close(

)pass

如何建立通用的資料庫結構?

像我這種天生就不太對tsql感冒的人,我想應該不少。昨天和汪警官討論起來xml在sql的應用,想想確實有道理。對於乙個字段比較多的表,或者字段經常變化的表,我們的資料庫變更,會對上層影響很大,如何來徹底解決呢?傳統的分層,orm都不能很好的解決這些問題。這個問題出在 呢?我想主要的原因是現在的關聯式...

python連阿里雲資料庫

阿里雲上的mysql,所以用的pymysql的庫。如果沒有安裝pymysql庫要先安裝。確定host,使用者名稱,密碼,介面 一般是3306 conntest pymysql.connect 11 host rm mysql.rds.aliyuncs.com 12 user abc 13 passw...

資料庫重連

4.2.10 資料庫自動重連 dbcp使用apache的物件池objectpool作為連線池的實現,在構造genericobjectpool時,會生成乙個內嵌類evictor,實現自runnable介面。如果 timebetweenevictionrunsmillis大於0,每過 timebetwe...