## 6.3.3.5 **findBySql 普通查询**
* 方法定义
注意:sqltoy所有查询sql参数有两种模式:
1. sqlId模式:即具体sql写于xml文件中,通过一个ID来引用
2. sql模式:即直接代码中写sql语句,传递到后面进行执行。
切不要误解为必须是写在xml中。

## 6.3.3.7 **findTop 取符合条件的前多少记录**
@fast()对findTop是起作用的

* 代码示例
TopSize:是double类型,如果>1,则按整数部分取记录,如果<1则按比例查询数据

执行结果:

按比例提取:0.2=20%,总数41条,结果提取出8条。



## 6.3.3.9 **findEntity 基于单表快捷查询**
备注:findEntity 查询时支持直接写对象属性名称和数据库字段名称
* 方法定义于SqlToyLazyDao中

* 使用范例


* 可以指定查询特定字段
* 提供了三种模式:数组、内部逗号分隔的单字符串、链式选择(更OO化避免数据库修改字段无法知道哪些代码需要变更)

* unselect排除不查询哪些字段
* orderBy和orderByDesc 设置排序


* 通过EntityQuery实现原本xml中定义的功能
* 支持filters过滤:如eq、neq、llike、rlike、to-date、primary等
* 支持distinct,EntityQuery.create().distinct().xxx
* 支持secureMask安全脱敏

* 支持缓存翻译
* 支持PageOptimize()分页优化: 默认aliveMax=100,aliveSeconds=90 .pageOptimize(new PageOptimize())

* 支持top和取随机记录

## 6.3.3.10 **findByQuery实现灵活查询**
* 通过QueryExecutor提供更加灵活的条件或参数设置
* 本质在sqltoy里面所有查询最终都是转化为QueryExecutor来执行的。

* 通过QueryExecutor可以对查询规则进行改变
针对sqlId,如下图QueryExecutor将对原本配置进行补充或替代
QueryExecutor支持:
* Filters条件参数规整过滤,即原本xml中的定义通过代码来实现
* dateFmt日期格式化
* numFmt:数字格式化
* translates:代码中动态设置缓存翻译
* pageOptimize:分页查询可以设置分页优化
* secureMask:对结果进行安全脱敏
* fetchSize:设置数据库每次抓取多少记录放于client中


.
- 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注入
- 字段加解密
- 扩展集成
