大家好,又见面了,我是你们的朋友全栈君。
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账号...