查询
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
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
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
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执行器解析为键值对形式的数据