在工作中,经常要用Python去取SQL里的数据,为了避免让每个小伙伴每次取数都要重写一遍代码,决定写一个类来解决这个问题。
SQL_Server类及其属性
可以用于SQl_Server的库
首先要引入一个可以处理SQL的库,pymssql就可以了
import pymssql
建立类并添加类属性和查询执行函数
- 当有2个及以上的单词时,PET8里的规则是驼峰,但我个人是喜欢用下划线,不管是驼峰还是下划线,记住类的首字母要大写;
- 既然是数据库,那么创建实例之后必然就是要连接,所以把连接作为类的属性,同时,连接后必然是要进行查询,那么就把游标也当成类的属性;
Class SQL_Server:
def __init__(self, server='127.0.0.1', user='test', password='test',
database='db'):
self.conn = pymssql.connect(server=server, user=user, password=password, database=database, charset='utf8')
# self.server = server
# self.user = user
# self.password = password
# self.database = database
self.cursor = self.conn.cursor()
def query(self, sql_code):
try:
self.cursor.execute(sql_code)
result = self.cursor.fetchall()
self.conn.commit() # 仅进行新增,更新,删除的时候需要commit,即向数据库提交,查询不需要
return result
except Exception as e:
print(e)
finally:
self.conn.close()
def execute(self, sql_code):
try:
self.cursor.execute(sql_code)
self.conn.commit()
except Exception as e:
print(e)
finally:
self.conn.close()
if __name__ == "__main__":
sql = SqlServer() # 创建一个SQL实例
sql.cursor.execute('''
SELECT * FROM comPerson
WHERE OnJob = 0
and PostId != ''
''')
result1 = sql.cursor.fetchall()
print(result1)
result2 = sql.query('''
SELECT * FROM comPerson
WHERE OnJob = 0
and PostId != ''
''')
print(result2)
```