Python ORM Bee V1.6.0 于 2025 年 4 月 28 日发布。该版本支持 Python 3.8.10 及以上版本,主要有以下更新:
- 支持复杂查询条件:可以使用
BF.condition()来构建复杂的where过滤条件,进行高级查询和更新操作。例如,通过condition.op("age", Op.ge, 22)可以筛选出年龄大于等于 22 的记录,还可以组合多个条件进行更复杂的查询。 - 提供高效更新功能:借助
SuidRich类的updateBy方法和BF.condition(),能够方便地实现对符合特定条件的记录进行批量更新。如condition.setAdd("age", 1)可将满足条件的记录的年龄字段值加 。 - 新增拦截器功能:拦截器功能可用于在执行数据库操作前后进行一些自定义的处理,比如记录操作日志、对数据进行预处理或后处理等,增加了系统的灵活性和可扩展性。
- 增加缓存功能:缓存功能可以提高数据库查询的性能,减少对数据库的频繁访问。对于一些经常查询且数据变化不频繁的数据,缓存在内存中可以快速响应查询请求,提升系统的整体性能。
- 优化批量插入性能:通过
SuidRich类的insert_batch方法,可以一次性插入多个实体对象,提高了批量插入数据的效率,减少了与数据库的交互次数,从而提升了整体性能。
下面将针对 Python ORM Bee V1.6.0 的新特性,给出使用示例:
1. 支持复杂查询条件
可以使用BF.condition()构建复杂的where过滤条件。假设你有一个User实体类,用于表示用户信息,包含id、name和age字段。
python
from bee.db import BF
from bee.db.suid import SuidRich
from bee.entity import Entity
class User(Entity):
__table_name__ = 'user'
suid = SuidRich()
# 构建复杂查询条件
condition = BF.condition()
condition.op("age", BF.Op.ge, 22).op("name", BF.Op.like, "%John%")
# 执行查询
users = suid.select(User).where(condition).all()
for user in users:
print(user)
2. 高效更新功能
使用SuidRich类的updateBy方法和BF.condition()实现批量更新。
python
from bee.db import BF
from bee.db.suid import SuidRich
from bee.entity import Entity
class User(Entity):
__table_name__ = 'user'
suid = SuidRich()
# 构建更新条件
condition = BF.condition()
condition.op("age", BF.Op.lt, 30)
# 定义更新内容
condition.setAdd("age", 1)
# 执行更新操作
updated_count = suid.updateBy(User, condition)
print(f"Updated {updated_count} records.")
3. 拦截器功能
拦截器可在数据库操作前后执行自定义逻辑。
python
from bee.db.suid import SuidRich
from bee.entity import Entity
class User(Entity):
__table_name__ = 'user'
suid = SuidRich()
# 定义拦截器函数
def before_query(interceptor_ctx):
print("Before query:", interceptor_ctx.sql)
return True
def after_query(interceptor_ctx):
print("After query:", interceptor_ctx.result)
# 添加拦截器
suid.add_interceptor(before_query, after_query)
# 执行查询
users = suid.select(User).all()
for user in users:
print(user)
4. 缓存功能
利用缓存功能提高查询性能。
python
from bee.db.suid import SuidRich
from bee.entity import Entity
class User(Entity):
__table_name__ = 'user'
suid = SuidRich()
# 开启缓存查询
users = suid.select(User).cache().all()
for user in users:
print(user)
5. 优化批量插入性能
使用SuidRich类的insert_batch方法一次性插入多个实体对象。
python
from bee.db.suid import SuidRich
from bee.entity import Entity
class User(Entity):
__table_name__ = 'user'
suid = SuidRich()
# 准备要插入的实体对象列表
users = [
User(name="Alice", age=25),
User(name="Bob", age=30),
User(name="Charlie", age=35)
]
# 执行批量插入
inserted_count = suid.insert_batch(users)
print(f"Inserted {inserted_count} records.")
以上代码展示了如何使用 Python ORM Bee V1.6.0 的新特性。使用前需确保已经正确安装了该库,可通过pip install bee进行安装。同时,要根据实际的数据库配置进行相应的调整。
3518

被折叠的 条评论
为什么被折叠?



