pymssql 的封装使用

来源:互联网 发布:巨人网络社会招聘 编辑:程序博客网 时间:2024/05/18 01:26

本文记录python 中sql server 的封装及使用。

1 先封装链接数据库所需要的信息

#coding=gbkclass Configration:    """description of class"""    host="JINJIEGO\SQLEXPRESS"    port=1433    user="sa"    pwd="123456"    db="test"    def __init__(self):       pass

2 为了避免程序中频繁链接数据库导致的资源消耗,可以创建一个全局对象,一直保持与数据库的链接,将此过程封装起来

#coding=gbkimport sysimport pymssqlfrom Configration import Configration class UniqueObject(Configration):  #only offer a support of connecting db    """description of class"""    cur=None    conn=None    def __init__(self):        Configration.__init__(self)    def __del__(self):           if  self.conn!=None:                      self.conn.close()                      print(">>>>>>>>>>>>>>>>>Connection has been closed!<<<<<<<<<<<<<<<<<<<")    @staticmethod    def GetObject():        if UniqueObject.cur==None:            print(">>>>>>>>>>>>>>>>>Connecting to Database.....<<<<<<<<<<<<<<<<<<")            return UniqueObject.__GetConnect()        return UniqueObject.conn,UniqueObject.cur    def __GetConnect():           if not Configration.db:  raise(NameError,"no db Info")           UniqueObject.conn =pymssql.connect(host=Configration.host,port=Configration.port,\                      user=Configration.user,password=Configration.pwd,\                      database=Configration.db,charset="utf8")           UniqueObject.cur=UniqueObject.conn.cursor()           if not UniqueObject.cur:    raise(NameError,"Connection error!")           else: return UniqueObject.conn,UniqueObject.cur

3 封装查询功能,主要是ExecQuery和ExecNonQuery

#coding=gbkimport pymssqlimport syssys.path.append(".")from Configration import *from UniqueObject import UniqueObject class MSSQL(object):   conn,cur=UniqueObject.GetObject()   def __init__(self):       pass   def __del__(self):     #print("\n  MSSQL object has been realsed!")         pass   def ExecQuery(self,sql):        MSSQL.cur.execute(sql)       reslist=self.cur.fetchall()       return reslist   def ExecNonQuery(self,sql):         #try:          MSSQL.cur.execute(sql)          MSSQL.conn.commit()        #except:          #print("\nInserting exception!")

使用时,类A的相关操作可以继承MSSQL,然后在A里面写相应的增删改查操作。

原创粉丝点击