pymssql封裝幫助類

2021-09-25 13:39:32 字數 3995 閱讀 8854

import pymssql #引入pymssql模組 鏈結sql server資料庫

class

sqlhelp

(object):

"""資料庫鏈結操作類"""

def__init__

(self, host, user, password, database, charset=

"utf-8"

, port=

1433

, as_dict=

true):

''' 例項化

host:鏈結

user:使用者名稱

password:密碼

database:資料庫名

charset:鏈結編碼格式,預設"utf-8"

as_dict:資料返回是否為字典,預設true

'''self.__conn_path=

defupdate_data

(self,sql ,arge='')

:"""類方法

sql:字串sql單條更新語句

return:插入影響行數

arge:多資料,list()----->[(1, 'john smith', 'john doe')]

單條資料,元組

error:-1

eg:單資料:

sql="insert into persons values(1, 'john smith', 'john doe')"

多資料:

sql="insert into persons values (%d, %s, %s)",

arge=[(1, 'john smith', 'john doe'),

(2, 'jane doe', 'joe dog'),

(3, 'mike t.', 'sarah h.')]

"""try:

with pymssql.connect(

**self.__conn_path)

as conn:

# with語句與連線和游標一起使用。這使您不必顯式關閉游標和連線。

with conn.cursor(as_dict=

true

)as cursor:

ifisinstance

(arge,

list):

cursor.executemany(sql,arge)

else

: cursor.execute(sql,arge)

effectrow = cursor.rowcount

conn.commit(

)return effectrow

except exception as ex:

print

("---------->更新操作error:"

,ex)

return-1

defget_data

(self,sql,arge=

tuple()

):""" 類方法

sql:字串sql查詢語句

return:資料list列表,無資料返回空列表

arge:元組引數

error:none

"""try:

ifnot

isinstance

(arge,

tuple):

raise exception(

"type型別錯誤,異常"

)with pymssql.connect(

**self.__conn_path)

as conn:

# with語句與連線和游標一起使用。這使您不必顯式關閉游標和連線。

with conn.cursor(

)as cursor:

print

(arge[:-

1]) cursor.execute(sql,arge)

return cursor.fetchall(

)except

:print

("------------>查詢操作error:"

,ex)

return

none

class

sqlclass

(object):

"""複雜sql資料儲存類"""

def__init__

(self, sql, arge)

:'''sql:sql

arge:所需引數

插入為列表list

其他為元組()

'''self.sql = sql

self.arge = arge

deftransaction_sql

(self, sql)

:'''

資料庫複雜sql操作,提供事務

sql:sql操作語句類(sqlclass)列表

return:影響行數

error:-1

使用方式

sqlhelp=sqlhelp("localhost","sa","123",'guiyang_universitytown_new')

lists = list()

n = sqlhelps.transaction_sql(lists)

'''try:

ifnot

isinstance

(sql,

list):

raise exception(

"引數type型別錯誤,異常"

)else

: n =

0#預設0,失敗

with pymssql.connect(

**self.__conn_path)

as conn:

with conn.cursor(

)as cursor:

for x in sql:

ifisinstance

(x.arge,

list):

cursor.executemany(x.sql,x.arge)

else

: cursor.execute(x.sql,x.arge)

n+=cursor.rowcount

if n:

conn.commit(

)return n

except exception as ex:

print

("------------>操作error:"

,ex)

return-1

if __name__ ==

'__main__'

: sqlhelps = sqlhelp(

"localhost"

,"sa"

,"123"

,'guiyang_universitytown_new'

) lists =

list()

,[('5201412032090000000165'

,none

,106.579311

,26.414393

,'3dml_dt\g48h077147b_dt'

,none),

('5201612032090000000165'

,none

,106.579311

,26.414393

,'3dml_dt\g48h077147b_dt'

,none)]

))'delete from t_model where code=%s and villagecode=%s',(

'5201612032090000000165'

,none))

) n = sqlhelps.transaction_sql(lists)

print

("複雜事務sql測試---------\n"

,n)

請求介面幫助類封裝

情況描述 在專案中,我們做介面的同時,也會有需求需要訪問別人的介面,如下是封裝的幫助類 示例 呼叫其他專案的介面幫助類 建立post方式的http請求 請求的url 隨同請求post的引數名稱及引數值字典 請求的超時時間 請求的客戶端瀏覽器資訊,可以為空 傳送http請求時所用的編碼 隨同http請...

C 操作MongoDB的幫助類 簡單封裝

好了,不多說,直接把dll和 記下來,以便以後直接使用。c 版的mongodb驅動是用官方提供的mongo csharp driver 引用 mongodb.driver.dll,mongodb.bson.dll 具體 部分 mongodb幫助類 public class mongodbhelper...

C 公共幫助類 Image幫助類

大家知道,開發專案除了資料訪問層很重要外,就是common了,這裡就提供了強大且實用的工具。c 公共幫助類 convert幫助類 image類 using system using system.collections.generic using system.text using system.i...