ORM 中间件配置
ORM 中间件简介
ORM 中间件(Object-Relational Mapping Middleware)是一种用于处理对象关系映射的软件层或组件。
它的主要目标是将对象(通常是编程语言中的类或结构体)和关系型数据库之间的数据映射和互操作进行抽象化和简化。ORM 中间件充当了应用程序和数据库之间的翻译器,允许开发人员使用对象的方式来操作数据库而不必直接编写 SQL 查询。
流行的编程语言和框架通常有自己的 ORM 中间件,例如 Python 的 SQLAlchemy、Java 的 Hibernate 等。这些中间件提供了一种更高级、更抽象的方法来与数据库进行交互,使开发人员更容易构建和维护数据库驱动的应用程序。
SQLAlchemy 简介
SQLAlchemy 是著名的 ORM 工具包。通过 ORM,开发者可以用面向对象的方式来操作数据库,不再需要编写 SQL 语句。SQLAlchemy 支持多种数据库,除 SQLite 外,其它数据库需要安装第三方驱动。
SQLAlchemy 的主要功能包含:
- ORM(对象关系映射)。
- SQL 表达式。
- 事务支持。
- 连接池管理。
- 多数据库支持。
ORM 中间件优势
-
抽象化数据库操作:ORM 中间件隐藏了底层数据库的复杂性,使开发人员能够使用编程语言中的对象和方法来执行数据库操作,而无需编写繁琐的 SQL 查询。
-
面向对象编程:ORM 允许开发人员将数据库表映射到编程语言中的类或结构体,这样可以更自然地处理数据,使用对象的方式进行操作。
-
跨数据库兼容性:ORM 中间件通常提供了对多种不同数据库系统的支持,从而使应用程序更容易实现数据库的切换和迁移。
-
安全性:ORM 中间件通常提供了内置的安全性特性,帮助防止 SQL 注入等攻击。
-
数据一致性:ORM 中间件可以帮助确保数据的一致性,处理关系和外键等数据库约束。
SQLAlchemy 安装
SQLAlchemy 在 Python 中可以直接通过 pip 命令进行安装:
pip install sqlalchemy
SQLAlchemy 使用步骤
使用 SQLAlchemy 可以按照以下步骤:
-
创建基类,并获得一个基类对象(这个基类对象会在后面建表进行使用):
Base = declarative_base()
-
创建引擎,通过引擎可以创建数据库连接,支持连接多种数据库类型,链接配置的格式为:
数据库类型+数据库引擎://用户名:密码@主机名:端口/数据库名
,具体代码如下所示:# sqlite的链接配置:sqlite:///数据库db文件所在的路径 # mysql的链接配置:mysql+pymysql://username:password@host:port/database engine = create_engine(链接配置)
-
创建 Session 对象,需要绑定引擎:
# 创建session对象 DBSession = sessionmaker(bind=engine)
-
实例化 Session 对象,并且做对应的类型声明,方便后续的数据库操作进行使用:
db_session: Session = DBSession()
SQLAlchemy 连接数据库
以下分别给出 SQLite 与 MySQL 两种数据库的连接示例。
SQLite 安装与配置
大多数情况下 SQLite 无需单独安装,SQLite 库的核心功能已经包含在很多编程语言和应用程序中。
如需安装,可以参考以下文档:
- SQLite 下载地址:https://sqlite.org/download.html
- SQLite 安装教程:https://ceshiren.com/t/topic/20637
- SQLite 在线预览工具:https://github.com/sqlitebrowser/sqlitebrowser
SQLAlchemy 连接 SQLite
SQLite 是一个进程内的库,实现了自给自足的、无服务器的、零配置的、事务性的 SQL 数据库引擎。它是一个零配置的数据库。
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base, sessionmaker, Session
# 声明基类
Base = declarative_base()
# 创建引擎,连接到数据库
engine = create_engine('sqlite:///test.db')
# 创建一个会话工厂,绑定到数据库引擎上
DBSession = sessionmaker(bind=engine)
db_session: Session = DBSession()
SQLAlchemy 连接 MySQL
from sqlalchemy import create_engine
from sqlalchemy.orm import declarative_base, sessionmaker, Session
# 声明基类
Base = declarative_base()
# 创建引擎,连接到数据库
engine = create_engine(f'mysql+pymysql://{username}:{pwd}@{ip}:{port}/{database}')
# 创建session对象,绑定到数据库引擎上
DBSession = sessionmaker(bind=engine)
db_session: Session = DBSession()
总结
在本章节中,介绍了 ORM 中间件的相关概念和 SQLAlchemy 的使用。
- ORM 中间件简介
- SQLAlchemy 简介
- ORM 中间件优势
- SQLAlchemy 安装
- SQLAlchemy 使用步骤
- SQLAlchemy 连接数据库
参考资料
- 官方文档:https://docs.sqlalchemy.org/en/20/index.html
- 更多数据库链接配置:https://docs.sqlalchemy.org/en/20/dialects