python 自定义数据库连接类

创建一个配置文件:E:/mypy/mycnf.txt

[plain]  view plain  copy
  1. [mssql]  
  2. host = HZC  
  3. user = kk  
  4. pwd = kk  
  5. dbname = DemoDB  

数据库连接类:E:/mypy/MSSQL.py

[python]  view plain  copy
  1. # -*- coding: utf-8 -*-    
  2. # python 3.5  
  3.   
  4. import sys  
  5. import pymssql  
  6. import ConfigParser  
  7. sys.path.append(r'E:/mypy')  
  8.   
  9. #从文件系统读取配置文件  
  10. cf = ConfigParser.ConfigParser()  
  11. cf.read("mycnf.txt")  
  12. host = cf.get("mssql""host")  
  13. user = cf.get("mssql""user")  
  14. pwd = cf.get("mssql""pwd")  
  15. db = cf.get("mssql""dbname")  
  16.   
  17. class MSSQL:  
  18.     #def __init__(self,host=None,user=None,pwd=None,db=None):  
  19.     def __init__(self):  
  20.         self.host = host  
  21.         self.user = user  
  22.         self.pwd = pwd  
  23.         self.db = db  
  24.           
  25.         self._conn = self.GetConnect()  
  26.         if(self._conn):  
  27.             self._cur = self._conn.cursor()  
  28.   
  29.   
  30.     #连接数据库  
  31.     def GetConnect(self):  
  32.         conn = False  
  33.         try:  
  34.             conn = pymssql.connect(  
  35.                 host=self.host,  
  36.                 user=self.user,  
  37.                 password=self.pwd,  
  38.                 database =self.db  
  39.             )  
  40.         except Exception as err:  
  41.             print("连接数据库失败, %s" % err)  
  42.         else:  
  43.             return conn  
  44.   
  45.   
  46.     #执行查询  
  47.     def ExecQuery(self,sql):  
  48.         res = ""  
  49.         try:  
  50.             self._cur.execute(sql)  
  51.             res = self._cur.fetchall()  
  52.         except Exception as err:  
  53.             print("查询失败, %s" % err)  
  54.         else:  
  55.             return res  
  56.   
  57.   
  58.     #执行非查询类语句  
  59.     def ExecNonQuery(self, sql):  
  60.         flag = False  
  61.         try:  
  62.             self._cur.execute(sql)  
  63.             self._conn.commit()  
  64.             flag = True  
  65.         except Exception as err:  
  66.             flag = False  
  67.             self._conn.rollback()  
  68.             print("执行失败, %s" % err)  
  69.         else:  
  70.             return flag  
  71.   
  72.   
  73.     #获取连接信息  
  74.     def GetConnectInfo(self):  
  75.         print"连接信息:" )  
  76.         print"服务器:%s , 用户名:%s , 数据库:%s " % (self.host,self.user,self.db))  
  77.   
  78.   
  79.   
  80.     #关闭数据库连接  
  81.     def Close(self):  
  82.         if(self._conn):  
  83.             try:  
  84.                 if(type(self._cur)=='object'):  
  85.                     self._cur.close()  
  86.                 if(type(self._conn)=='object'):  
  87.                     self._conn.close()  
  88.             except:  
  89.                 raise("关闭异常, %s,%s" % (type(self._cur), type(self._conn)))    

执行SQL:

[python]  view plain  copy
  1. # -*- coding: utf-8 -*-    
  2. # python 3.5  
  3.   
  4. import sys  
  5. sys.path.append(r'E:/mypy')   
  6. from MSSQL import MSSQL;  
  7.   
  8. sql = "select oid,name,craetedate from tab;"  
  9. ms = MSSQL()  
  10. resList = ms.ExecQuery(sql)  
  11. for row in resList:  
  12.     print("oid: %d\tname: %s\tcraetedate: %s" % (row[0],row[1],row[2]))  
  13.   
  14. #ms.ExecNonQuery(sql)  
  15. #ms.GetConnectInfo()  
  16. #ms.Close()  
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值