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

python pymssql_Python模块-pymssql[通俗易懂]Python默认的数据库是SQLlite,不过它对MySql以及SQLserver的支持也可以。如果想链接操作SQLserver,需使用第三方包pymssqlpymssql是一个Python的数据库接口,基于FreeTDS构建,对_mssql模块进行了封装,遵循Python的DBAPI规范,而FreeTDS是一个C语言连接sqlserver的公共开源库工作原理使用connect创建连接对象;…

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

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.net/149420.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ma3d舞台建模教程_3d渲染需要什么配置

    ma3d舞台建模教程_3d渲染需要什么配置2019.8.9更新:Smart3D现在对所有的.s3c文件都进行了加密,已经不能直接设置txt文件,但是依旧可以使用CC_S3CComposer.exe进行编辑创建。但是官网下载的.s3c文件还进一步有设置,不能进行编辑更改,因此请下载我提供的.s3c文件进行操作。以下步骤根据最新.s3c格式进行编写。一、须知:S3C是Smart3D内部格式,实质上是一个分块模型的索引,可以…

    2022年10月7日
    2
  • webapi文档描述-swagger

    webapi文档描述-swagger最近做的项目使用mvc+webapi,采取前后端分离的方式,后台提供API接口给前端开发人员。这个过程中遇到一个问题后台开发人员怎么提供接口说明文档给前端开发人员,最初打算使用word文档方式进行交流

    2022年8月5日
    7
  • 我的世界服务器作弊指令大全_我的世界服务器称号指令

    我的世界服务器作弊指令大全_我的世界服务器称号指令原标题:我的世界指令代码大全一、我的世界指令代码大全单机指令(部分多人也适用)/gamemode0是生存(极限)模式/gamemode1是创造模式/gamemode2是冒险模式(必须用特定的武器才能消除方块)/gamemode3是生存(极限)模式/give你的名字1371能得到命令方块,在里面输死亡不掉落:/gamerulekeepInventorytrue防爆:/game…

    2022年9月23日
    2
  • module ‘tensorflow’ has no attribute ‘placeholder’

    module ‘tensorflow’ has no attribute ‘placeholder’tensorflow2.0提示错误:module’tensorflow’hasnoattribute’placeholder’解决办法:不要使用:importtensorflowastf替换为:importtensorflow.compat.v1astftf.disable_v2_behavior()tensorflow的新变化,后续查到具体的文档,再补…

    2022年7月13日
    101
  • 数字电路实验(三)——加法器、运算器

    数字电路实验(三)——加法器、运算器1、实验步骤:A全加器:1个vhd文件,用来定义顶层实体1个vwf文件,用来进行波形仿真,将验证的波形输入1、新建,编写源代码。(1).选择保存项和芯片类型:【File】-【newprojectwizard】-【next】(设置文件路径+设置projectname为【C:\Users\lenovo\Desktop\笔记\大二上\数字电路\实验课\实验三\全加器】)-【next】(设…

    2022年7月12日
    18
  • python2022激活码-激活码分享2022.01.22[通俗易懂]

    (python2022激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月31日
    384

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号