前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >python pymssql_Python模块-pymssql[通俗易懂]

python pymssql_Python模块-pymssql[通俗易懂]

作者头像
全栈程序员站长
发布2022-07-04 13:42:47
发布2022-07-04 13:42:47
1.5K0
举报

大家好,又见面了,我是你们的朋友全栈君。

Python默认的数据库是 SQLlite,不过它对MySql以及SQL server的支持也可以。如果想链接操作SQL server,需使用第三方包pymssql

pymssql是一个Python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循Python的DBAPI规范,而FreeTDS是一个C语言连接sqlserver的公共开源库

工作原理

使用connect创建连接对象;

connect.cursor创建游标对象,SQL语句的执行在游标上执行;

cursor.execute()方法执行SQL语句,cursor.fetch()方法获取查询结果;

如果有反向修改,需执行connect.commit();

调用close方法关闭游标cursor和数据库连接;

一个连接一次只能有一个游标的查询处于活跃状态!

可以通过使用with语句来省去显示的调用close方法关闭连接和游标

pymssql 2.0.0以上的版本可以通过cursor.callproc方法来调用存储过程

常用封装

class MSSQL:

# 类的构造函数,初始化数据库连接ip或者域名,以及用户名,密码,要连接的数据库名称

def __init__(self,host,user,pwd,db):

self.host=host

self.user=user

self.pwd=pwd

self.db=db

# 得到数据库连接信息函数,返回: conn.cursor()

def __GetConnect(self):

self.conn=pymssql.connect(host=self.host,

user=self.user,

password=self.pwd,

database=self.db,

charset=’utf8′)

cur=self.conn.cursor() #将数据库连接信息,赋值给cur。

if not cur:

raise(NameError,”连接数据库失败”)

else:

return cur

#执行查询语句,返回的是一个包含tuple的list,list的元素是记录行,tuple的元素是每行记录的字段

def ExecQuery(self,sql):

cur = self.__GetConnect() #获得数据库连接信息

cur.execute(sql) #执行Sql语句

resList = cur.fetchall() #获得所有的查询结果

self.conn.close() #查询完毕后必须关闭连接

return resList #返回查询结果

#执行Sql语句函数,无返回结果的,方向修改的

def ExecNonQuery(self,sql):

cur = self.__GetConnect()

cur.execute(sql)

self.conn.commit()

self.conn.close()

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/149420.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档