查询

5/10/2023 查询

自带的查询功能较少,适用场景不多,清根据自身需求搭配使用。

# 默认查询方法

方法名 描述
find_all 查询所有的数据
find_many 查询多个数据
find_field 查询所有数据中指定的字段
find_one 查询一条数据
find_sql 根据 sql 查询
execute_sql 执行原生 sql,并返回原生数据

# 示例

首先实例化对象,然后使用aestate.util.Log中的logging生成日志对象

from aestate.util.Log import logging
from operas.table.demoModels import Demo

# 一定要先实例化
demo = Demo()
log = logging.gen(demo)
1
2
3
4
5
6

# 方法示例

# find_all()

使用`find_all()`方法时,会从父类Repository中先使获取需要查询的字段,在Pojo初始化时已经获取了可用字段和他的类型
在`find_all()`操作时会生成类似:
SELECT `name`,`password`,`id`,`create_time`,`update_time` FROM `demo`

执行以下代码,结果返回一个 QuerySet 对象

r1 = demo.find_all()
log.info('r1', type(r1), r1)
1
2
PooledDedicatedDBConnection : 执行语句 ==>  SELECT `name`,`password`,`status`,`id`,`create_time`,`update_time` FROM demo
PooledDedicatedDBConnection : 参数 ==>
PooledDedicatedDBConnection : 行数 ==> 2
Log.ALog : r1<class 'aestate.work.Serialize.QuerySet'>[<operas.table.demoModels.Demo object at 0x000001C2DC5D4388>, .....]
1
2
3
4

# find_many()

同上

# find_field()

与find_all()类似,只不过查询的字段是从传递的参数获取

# find_one()

根据sql查询,可以通过设置[params:list]来配置防sql注入

# find_sql()

根据sql查询,可以通过设置[params:list]来配置防sql注入

# execute_sql()

根据原生sql查询,可以通过设置[params:list]来配置防sql注入,最后返回的数据为sql查询的原始数据
会通过数据库配置类中的sql执行器解析为键值对形式的数据
Last Updated: 5/10/2023, 3:05:26 PM