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()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 深度剖析LinkedHashSet「建议收藏」

    深度剖析LinkedHashSet「建议收藏」HashMap是一个利用数组存储key-value键值对的一个数据结构,为了有序的要求,然后我们引入了LinkedHashMap来满足我们对顺序的要求,再到后面我们学习了HashSet这种数据结构,利用的是HashMap的Key的唯一性来实现HashSet的去重的目的LinkedHashSet也HashSet一样也在内部使用了HashMap,因为LinkedHashSet要维持元素之间的顺序,所以它使用的实HashMap的有序版本,也就是LinkedHashMap

    2022年10月12日
  • Android制作字符串表格String.xml转EXCEL工具

    Android制作字符串表格String.xml转EXCEL工具publicstaticListgetAllExternalSdcardPath(){ListPathList=newArrayList();StringfirstPath=Environment.getExternalStorageDirectory().getPath();Log.d(TAG,”getAllExter

  • 猴子摘香蕉问题python_硬币找零&&爬楼梯&&猴子摘香蕉「建议收藏」

    猴子摘香蕉问题python_硬币找零&&爬楼梯&&猴子摘香蕉「建议收藏」硬币找零&&爬楼梯&&猴子摘香蕉假设有几种硬币,如1、3、5,并且数量无限。请找出能够组成某个数目的找零所使用最少的硬币数。#include”CoinProblem.h”#includeintcountNum=MAX;voidCoinProblem(int*coin,intLength,intValue,intcount){if(Value==0){if(count…

  • Redis集群详解

    Redis集群详解Redis集群详解Redis有三种集群模式,分别是:*主从模式*Sentinel模式*Cluster模式三种集群模式各有特点,关于Redis介绍可以参考这里:NoSQL(二)——RedisRedis官网:https://redis.io/,最新版本5.0.4主从模式主从模式介绍主从模式是三种模式中最简单的,在主从复制中,数据库分为两类:主数据库(master)和从…

  • SNMP TRAP_Bootstrapping

    SNMP TRAP_Bootstrapping一、什么是SNMPTRAPSNMPtrap(SNMP陷阱):某种入口,到达该入口会使SNMP被管设备主动通知SNMP管理器,而不是等待SNMP管理器的再次轮询。在网管系统中,被管理设备中的代理可以在任何时候向网络管理工作站报告错误情况,例如预制定阈值越界程度等等。代理并不需要等到管理工作站为获得这些错误情况而轮询他的时候才会报告。正如人们用中断通知CPU数据的到达,而不是让CPU进行轮询一样。Trap通知是更加合理的选择。用一句话来说的话,SNMPTrap就是被管理设备主动发送消息给

  • 自顶向下 | 带你遨游运输层

    自顶向下 | 带你遨游运输层

发表回复

您的电子邮箱地址不会被公开。

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