MySql数据库列表数据分页查询和全文搜索API零代码实现上篇文档主要介绍元数据配置,包括表单定义和表关系管理,以及表单数据Entry,本文主要介绍crudapi中数据查询和分页的实现。总结数据查询API数据查询主要是指根据输入的条件,检索出符合要求的数据列表。如果数据量很大,需要考虑分页。API为/api/business/{name},其中name为对象名称的复数形式(与对象名称兼容),查询参数如下:查询,默认查询所有字段和关联子表expandstring选择需要展开的关联主表。默认情况下,关联的主表字段只查询id和namesearchstring全文搜索关键字。filterstring智能查询条件是通过内置的系统字段全文索引fullTextBody实现的。格式为Condition对象Sorting方法、ASC和DESCoffsetint32分页起始位置limitint32每页数量Field1对象最后转换为mysql=operator字段2对象最后转换为mysql=operator...object最后转换为mysql=operatorfield1,field2,...之间的关系querycustomerfieldquerycustomerinput一共四条数据分别按姓名、手机、邮箱、会员卡号查询,请求url如下:https://demo.crudapi。cn/api/b...查找客户刘禅全文搜索使用关键字“刘”搜索客户表全文,请求url如下:https://demo.crudapi.cn/api/b...查找客户刘禅和刘备,具体原理如下:表单中启用了“可查询”属性的字段,最后拼接成一个全文搜索文本fullTextBody,更新在插入和更新数据的时间,这样就可以使用mysql的全文搜索功能实现关键字查询,最后转换成SQL语句如下:SELECT*FROM`ca_customer`WHERE((MATCH(`fullTextBody`)AGAINST('张*'INBOOLEANMODE)))ORDERBYidDESCLIMIT0,10类似,通过关键字“liu”搜索客户表全文,也可以通过邮箱匹配查询数据。智能查询原理定义接口条件Condition,叶子条件LeafCondition继承Condition,复合条件CompositeCondition继承Condition。该模式实现了智能查询,publicenumOperatorTypeEnum{EQ,NE,LIKE,IN,INSELECT,SEARCH,GE,GT,LE,LT,BETWEEN}数据库查询操作符包括等于,大于,LIKE等@JsonPropertyOrder(alphabetic=true)@JsonIgnoreProperties(ignoreUnknown=true)@JsonTypeInfo(use=JsonTypeInfo.Id.NAME,include=JsonTypeInfo.As.PROPERTY,property="name")@JsonSubTypes(value={@JsonSubTypes.Type(value=CompositeCondition.class,name="C"),@JsonSubTypes.Type(value=LeafCondition.class,name="L")})publicinterfaceCondition{StringtoQuerySql();List