共计 1409 个字符,预计需要花费 4 分钟才能阅读完成。
使用 SQLAlchemy 来操作神通数据库
需对原有 SQLAlchemy 包进行扩展 :
- 神通 oscar 方言 (mysql, oracle 之类的数据库都有方言)
对 Python 解释器也进行扩展:
- 神通 STPython 接口
- 神通 ACI 接口
一. 部署软件版本
软件 | 版本 |
---|---|
python | 支持 SQLAlchemy1.4.15 的版本 |
STPython | 按 Python 版本选择(私有库文件) |
ACI | 无(私有库文件) |
sqlalchemy | 1.4.15(当前这个版本支持 oscar) |
oscar 方言 | 按 sqlalchemy 版本选(私有) |
二. 软件安装
1.sqlalchemy 安装
pip install sqlalchemy==1.4.15
2.STPython 安装
- 选择相应系统相应 Python 版本进行安装
pip install STPython-2.0.13-cp37-cp37m-linux_x86_64.whl
3.ACI 安装
将
aci-2.0.44
文件中bin
目录下的2 个 dll 文件(win)
或者so 文件(linux)
放入 python 解释器site-packages
内
4.oscar 方言安装
选择相应系统的文件夹:
例如 linux :
stpython-2.0.13.linux64.publish\STPython\Orm-sqlalchemy\sqlalchemy-1.4.15\oscar
将整个
oscar
文件夹放入 Python 解释器xxxx\Lib\site-packages\sqlalchemy\dialects
下神通 oscar 方言不区分平台,方言只和 SQLAlchemy 的版本有关
5. 代码测试
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import create_engine, MetaData, or_, join, outerjoin
from sqlalchemy import Column, String, Integer, Float, Boolean, DECIMAL
from sqlalchemy import Enum, Date, DateTime, Time, Text
from sqlalchemy import LargeBinary, UnicodeText, TIMESTAMP
from sqlalchemy import func, Table
from sqlalchemy.dialects.oscar import CLOB, BLOB
# 创建引擎
engine = create_engine("oscar+stpython://sysdba:168168@10.64.66.118:2003/SONG_TEST", echo=False)
# 建立 session 链接(connect), 绑定 engine
session = sessionmaker(bind=engine)
# 建立游标 cursor
cursor = session()
# 执行 sql 语句
res = cursor.execute("select * from test").fetchall()
print(res)
# 关闭游标
cursor.close()
# 关闭引擎
engine.dispose()
更多操作查看文档
正文完