## 6.3.3.5 **findBySql 普通查询**
* 方法定义
注意:sqltoy所有查询sql参数有两种模式:
1. sqlId模式:即具体sql写于xml文件中,通过一个ID来引用
2. sql模式:即直接代码中写sql语句,传递到后面进行执行。
切不要误解为必须是写在xml中。
![](images/4e222082318f73e6b675d354e6e08ea2d4ba0451.png)![](https://img.kancloud.cn/b6/a6/b6a68d8a4e9090a038178c2ae4ebc3f7_566x311.png =800x400)
## 6.3.3.7 **findTop 取符合条件的前多少记录**
@fast()对findTop是起作用的
![](images/9dbb5118f64c423d90b7f45ffdbc6d6bde42206b.png)![](https://img.kancloud.cn/5e/44/5e44a7cb0c1e57a1ba746a3f36e4f1ae_554x244.png)
* 代码示例
TopSize:是double类型,如果>1,则按整数部分取记录,如果<1则按比例查询数据
![](images/3510f010d31460f2aa478705627219e92212aa43.png)![](https://img.kancloud.cn/cd/e9/cde9a616c6d14caeaaafa354807ce97e_554x163.png)
执行结果:
![](images/fa4bdedee72af189e094bd553ea4f8f2eb1d7915.png)![](https://img.kancloud.cn/c1/cc/c1ccc9658393c20a60b7376ab55dabfb_522x151.png)
按比例提取:0.2=20%,总数41条,结果提取出8条。
![](images/739bd4444db1b07fa8cbe5ad20bf4231a50ee88e.png)![](https://img.kancloud.cn/97/34/9734070b53412156550959dc23278a73_554x89.png)
![](https://img.kancloud.cn/86/ec/86ecb744fc6f54b461a4302633795467_554x219.png)
![](images/c1c9302669d5ad669a78c9eec35f50ef160781b7.png)
## 6.3.3.9 **findEntity 基于单表快捷查询**
备注:findEntity 查询时支持直接写对象属性名称和数据库字段名称
* 方法定义于SqlToyLazyDao中
![](images/a4762cbc5e0e759998718dc75c97ca8d4b78ceed.png)![](https://img.kancloud.cn/23/d8/23d8bce40437f53a14619a0bb71b13cc_630x143.png)
* 使用范例
![](images/42106b4e230b51d20899112dc4e0b0f93b87a7ed.png)![](https://img.kancloud.cn/1d/e4/1de41198c70b233526d56e475374c8bb_636x367.png)
![](images/5c66231c272cfaf8d50a7b39ed781333ec52b78e.png)![](https://img.kancloud.cn/7a/87/7a878a51e1f8ff4e0cf970d6641c3d7d_547x191.png)
* 可以指定查询特定字段
* 提供了三种模式:数组、内部逗号分隔的单字符串、链式选择(更OO化避免数据库修改字段无法知道哪些代码需要变更)
![](images/4c5e801c6944b9b373c0165f44eb7facf30f3a58.png)![](https://img.kancloud.cn/9e/9a/9e9afa1fae66713e0a69576be5524fbb_544x171.png)
* unselect排除不查询哪些字段
* orderBy和orderByDesc 设置排序
![](https://img.kancloud.cn/3d/8c/3d8ce4e97164848f8d027036006ca557_499x136.png)![](images/a0ecd695de26884d724c55fcc78ab7b7aae423b2.png)
![](https://img.kancloud.cn/8f/b4/8fb40a70e20c227ea6f156c84ef455e7_548x158.png)
* 通过EntityQuery实现原本xml中定义的功能
* 支持filters过滤:如eq、neq、llike、rlike、to-date、primary等
* 支持distinct,EntityQuery.create().distinct().xxx
* 支持secureMask安全脱敏
![](images/eb1abc19fb28c0efb7e87b5cea6f307d39a52c29.png)![](https://img.kancloud.cn/52/e4/52e4a5a75986a9a5c96f80fc793f1ac8_554x140.png)
* 支持缓存翻译
* 支持PageOptimize()分页优化: 默认aliveMax=100,aliveSeconds=90 .pageOptimize(new PageOptimize())
![](images/f98faf45340c0e479280b8fec7079c935b735809.png)![](https://img.kancloud.cn/e3/5f/e35fc9c74f02e84e3c3aa54105a346fc_622x159.png)
* 支持top和取随机记录
![](images/7a46803aa2eddd11b46c186054ec5e5fb70fbb85.png)![](https://img.kancloud.cn/7e/ed/7eeddf6e8d944b8c0bef3cd2b350aa0e_522x282.png)
## 6.3.3.10 **findByQuery实现灵活查询**
* 通过QueryExecutor提供更加灵活的条件或参数设置
* 本质在sqltoy里面所有查询最终都是转化为QueryExecutor来执行的。
![](images/6a70a4de666f97584475107b984f01819da1c988.png)![](https://img.kancloud.cn/ba/56/ba56616cc8609a9af5b6a6adb427efed_593x182.png)
* 通过QueryExecutor可以对查询规则进行改变
针对sqlId,如下图QueryExecutor将对原本配置进行补充或替代
QueryExecutor支持:
* Filters条件参数规整过滤,即原本xml中的定义通过代码来实现
* dateFmt日期格式化
* numFmt:数字格式化
* translates:代码中动态设置缓存翻译
* pageOptimize:分页查询可以设置分页优化
* secureMask:对结果进行安全脱敏
* fetchSize:设置数据库每次抓取多少记录放于client中
![](images/eb025c7b180ca3847a441289d4406361aa0fcfbc.png)![](https://img.kancloud.cn/5f/65/5f659b5d6b65c7eb7596931490b46c94_581x164.png)
![](images/63114f2727bce8ff0bff41f787aa71f2fc9726a0.png)![](https://img.kancloud.cn/0b/f6/0bf6e6437e1aeffe969f4a6cd189f7da_578x91.png)
.
- 1.简介
- 开发历程
- 技术架构
- 问答了解
- 版本历史
- update-5.1.4、4.18.43
- update-5.1.2
- 早期历史
- 5.1.15.rc1
- 2.快速使用
- 示例与环境
- quickvo工具使用
- 用法说明
- 关键注意事项
- 严格VO(DTO)和POJO(entity)分层
- 3.教程
- spring项目搭建
- Toy-ORM 配置
- 详细配置参数
- 缓存功能
- 缓存配置、缓存扩展
- 扩展缓存框架配置
- 缓存翻译
- 其他缓存应用场景
- 公共功能
- 表(对象)关联
- 公共字段赋值
- 链式操作
- DTO与POJO互转
- 对象操作
- save + update
- delete + trunk
- load加载数据
- 唯一验证
- 树形数据
- sharding分库分表
- SQL操作
- sql文件规则
- filters说明
- 缓存翻译
- 分库分表
- 汇总、环比
- 行列转换
- 数据脱敏
- 格式化-数字日期
- sqlToy的sql查询基本规则
- Sql查询功能
- load操作
- get操作
- find操作
- 分页查询
- 并行查询
- execute操作
- executeSql
- executeStore
- 数据库特性
- 主键策略
- JSON等类型扩展支持
- 跨库说明--异种库兼容
- 数据库保留字处理
- 多源-多库-异库
- 多数据源
- Mongodb支持
- ElasticSearch支持
- 高级扩展
- 补充-if+fast+blank+value+loop
- 高级功能
- 完美sql
- 快速分页
- 缓存翻译
- 防止sql注入
- 字段加解密
- 扩展集成