0、准备工作
Python连接Linux虚拟机发送并执行命令(可要可不要)
Linux环境PostgreSQL源码编译安装(若已安装则跳过)
1、连接database
在侧栏有database项,如果没有,点击视图-工具窗口-数据库
点击加号,添加数据库
在弹出窗口中完成配置(可能会提示需要下载drive)
连接成功后的显示
2、代码连接数据库
连接并执行操作数据库的类
import psycopg2
from psycopg2 import ProgrammingError
# 类PostGreConnect
class PostGreConnect(object):
def __init__(self, database="postgres", user="postgres", password="postgres", host=None, port="5432"):
self._cursor = None
self._conn = None
self._database = database
self._user = user
self._password = password
self._host = host
self._port = port
self._result = None
# 获得数据库连接
def get_connection(self):
self._conn = psycopg2.connect(database=self._database, user=self._user, password=self._password,
host=self._host, port=self._port)
# 关闭数据库连接
def close_connection(self):
# 事务提交
self._conn.commit()
# # 关闭数据库连接
# self._cursor.close()
self._conn.close()
# 执行方法(传入的sql中只能有一条查询语句)
def execute_method(self, sql):
# 获取连接
self.get_connection()
cur = self._conn.cursor()
# 执行查询命令
cur.execute(sql)
try:
rows = cur.fetchall()
except ProgrammingError:
return
return rows
# 执行方法(传入的sql中可以有多条查询语句,按行执行)
def multi_execute_method(self, sql):
# 获取连接
self.get_connection()
cur = self._conn.cursor()
sqls=sql.split("\n")
for i in range(len(sqls)):
# 执行查询命令
cur.execute(sqls[i])
if i == 1:
rows = cur.fetchall()
return rows
执行示例
from base import PostGreHelper
if __name__ == '__main__':
# 连接数据库
pg_helper = PostGreHelper(host="192.168.10.131")
# 单条执行语句
sql="需要查询的语句;"
res = pg_helper.execute_method(sql)[0]
pg_helper.close_connection()
# 多条执行语句
sqlmulti="需要查询的语句1;\n"+
"需要查询的语句2;"
res = pg_helper.execute_method(sqlmulti)[0]
pg_helper.close_connection()