企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 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) .