欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 运维知识 > 数据库 >内容正文

数据库

Hasor【付诸实践 03】Dataway 无代码接口工具 DataQL 聚合查询引擎使用 Mybatis 实现分页查询举例说明 + 问题分析(针对GreenPlum数据库)

发布时间:2024/10/6 数据库 49 豆豆

Hasor 框架 Dataway 使用可参考我之前分享的 SpringBoot 集成 Hasor【Dataway 无代码接口工具】配置及问题解决 。这里记录一下使用DataQL遇到的问题。

1.举例及说明

接口的 DataQL 如下:
问题及说明1: 【GreenPlum数据库的方言要使用postgresql 】之前的分享 DataQL 聚合查询引擎执行器报错原因分析及解决 解释了为什么,感兴趣的可以看看。

// SQL 执行器切换为分页模式及首页页面设置 hint FRAGMENT_SQL_QUERY_BY_PAGE = true hint FRAGMENT_SQL_QUERY_BY_PAGE_NUMBER_OFFSET = 1 hint FRAGMENT_SQL_PAGE_DIALECT = "postgresql"// 统一转驼峰 // 问题及说明2:通过下边的查询SQL测试得出结论,转驼峰的规则是,全部字母小写下划线后的字母大写,特别要注意的是【这里的驼峰只针对数据查询的字段,分页字段默认是驼峰的,下面附上测试】。 // default、upper、lower、hump hint FRAGMENT_SQL_COLUMN_CASE = "hump" // 定义查询SQL // 问题及说明3:对mybatis的支持并不完善,支持的标签有<select> <insert> <delete> <update> <if> 和<foreach>相关,<where>标签测试是不支持的。 // 问题及说明4:Date类型数据的查询,需要使用 TO_CHAR 函数,否则是毫秒值。 var dataSetFun = @@mybatis(keyword,futurestartdate) <%<select>SELECTfirstrecommendfield AS first_recommend_field,secondrecommendfield AS second_REcommend_Field,TO_CHAR(futurestartdate, 'yyyy-MM-dd') AS future_start_dateFROMyz_test_matchWHERE futurestartdate is not null<if test="keyword != null and keyword != ''">AND firstrecommendfield like concat('%','${keyword}','%') </if> <if test="futurestartdate != null and futurestartdate != ''">AND futurestartdate = '${futurestartdate}'</if> ORDER BY futurestartdate</select> %>// 创建分页查询对象 // 问题及说明5:参数的传递规则,顺序很重要,从左到右是SQL内的参数顺序。 var pageQuery = dataSetFun(${keyword},${futurestartdate},${pageSize},${pageNumber}); // 设置分页信息 run pageQuery.setPageInfo({"pageSize" : #{pageSize}, "currentPage" : #{pageNumber} }); // 执行分页查询 var pageData = pageQuery.data(); // 查询分页信息 var pageInfo = pageQuery.pageInfo(); // 返回结果封装 // 问题及说明6:结果会封装到之前的value内。 return {"pageData" : pageData,"pageInfo" : pageInfo };

参数如下:
这里的参数不用注意顺序。

{"keyword": "","futurestartdate": "2021-04-18","pageSize": 1,"pageNumber": 1 }

执行结果:

{"success": true,"message": "OK","location": null,"code": 0,"lifeCycleTime": 220,"executionTime": 214,"value": {"pageData": [{"firstRecommendField": "豫A5VT98","secondRecommendField": "460020603684395","futureStartDate": "2021-04-18"}],"pageInfo": {"enable": true,"pageSize": 1,"totalCount": 5175,"totalPage": 5175,"currentPage": 1,"recordPosition": 0}} }

2.测试 FRAGMENT_SQL_COLUMN_CASE 设置

只贴出改变的设置:

hint FRAGMENT_SQL_COLUMN_CASE = "upper"

结果: 我们可以看到pageData的字段全部大写了,pageInfo的字段还是驼峰。

{"success": true,"message": "OK","location": null,"code": 0,"lifeCycleTime": 206,"executionTime": 199,"value": {"pageData": {"FIRST_RECOMMEND_FIELD": "豫A5VT98","SECOND_RECOMMEND_FIELD": "460020603684395","FUTURE_START_DATE": "2021-04-18"},"pageInfo": {"enable": true,"pageSize": 1,"totalCount": 5175,"totalPage": 5175,"currentPage": 1,"recordPosition": 0}} }

总结

以上是生活随笔为你收集整理的Hasor【付诸实践 03】Dataway 无代码接口工具 DataQL 聚合查询引擎使用 Mybatis 实现分页查询举例说明 + 问题分析(针对GreenPlum数据库)的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。