Python 自定義資料庫連線類

2021-08-11 07:45:49 字數 2575 閱讀 5312

建立乙個配置檔案:

e:/mypy/

mycnf.txt

[mssql]

host = hzc

user = kk

pwd = kk

dbname = demodb

資料庫連線類:e:/mypy/mssql.py

# -*- coding: utf-8 -*-  

# python 3.5

import sys

import pymssql

import configparser

#從檔案系統讀取配置檔案

cf = configparser.configparser()

cf.read("mycnf.txt")

host = cf.get("mssql", "host")

user = cf.get("mssql", "user")

pwd = cf.get("mssql", "pwd")

db = cf.get("mssql", "dbname")

class mssql:

#def __init__(self,host=none,user=none,pwd=none,db=none):

def __init__(self):

self.host = host

self.user = user

self.pwd = pwd

self.db = db

self._conn = self.getconnect()

if(self._conn):

self._cur = self._conn.cursor()

#連線資料庫

def getconnect(self):

conn = false

try:

conn = pymssql.connect(

host=self.host,

user=self.user,

password=self.pwd,

database =self.db

)except exception as err:

print("連線資料庫失敗, %s" % err)

else:

return conn

#執行查詢

def execquery(self,sql):

res = ""

try:

self._cur.execute(sql)

res = self._cur.fetchall()

except exception as err:

print("查詢失敗, %s" % err)

else:

return res

#執行非查詢類語句

def execnonquery(self, sql):

flag = false

try:

self._cur.execute(sql)

self._conn.commit()

flag = true

except exception as err:

flag = false

self._conn.rollback()

print("執行失敗, %s" % err)

else:

return flag

#獲取連線資訊

def getconnectinfo(self):

print( "連線資訊:" )

print( "伺服器:%s , 使用者名稱:%s , 資料庫:%s " % (self.host,self.user,self.db))

#關閉資料庫連線

def close(self):

if(self._conn):

try:

if(type(self._cur)=='object'):

self._cur.close()

if(type(self._conn)=='object'):

self._conn.close()

except:

raise("關閉異常, %s,%s" % (type(self._cur), type(self._conn)))

執行sql:

# -*- coding: utf-8 -*-  

# python 3.5

import sys

from mssql import mssql;

sql = "select oid,name,craetedate from tab;"

ms = mssql()

reslist = ms.execquery(sql)

for row in reslist:

print("oid: %d\tname: %s\tcraetedate: %s" % (row[0],row[1],row[2]))

#ms.execnonquery(sql)

#ms.getconnectinfo()

#ms.close()

參考:

python自定義資料庫工具類

coding utf 8 import pymysql import pandas as pd import pymysql.cursors from sqlalchemy import create engine import io class mysql def init self,host,p...

自定義資料庫連線池

在使用jdbc運算元據庫時,運算元據庫 1.先建立乙個連線物件2.執行操作 3.操作完畢,再把連線關閉。是否影響程式執行的效率?頻繁的的建立,關閉連線。所以就引入了連線池技術 自定義連線池 先定義引數資訊 1.定義儲存連線物件的集合 連線池 2.定義初始化連線數目 init count 3 3.最大...

python自定義類

設計乙個person類的3種方式 1 使用內建型別list person mike 23,male 0 姓名,1 年紀,2 性別 print person 0 person 1 person 2 2 使用字典型別dic person1 person2 print person1 name perso...