腾讯 APIJSON 插件 apijson-query-spring-boot-starter 1.0.2
腾讯 APIJSON 是一种专为 API 而生的 JSON 网络传输协议 以及 基于这套协议实现的 ORM 库。
为各种增删改查提供了完全自动化的万能 API,零代码实时满足千变万化的各种新增和变更需求。
能大幅降低开发和沟通成本,简化开发流程,缩短开发周期。适合中小型前后端分离的项目。
自 2016 年开源 7 年来发展迅速,目前 16K+ Star 位居 400W Java 开源项目前 100。
国内 腾讯、华为、阿里巴巴、字节跳动、美团、拼多多、百度、京东、网易、快手、圆通 等 和
国外 Google, Apple, Microsoft, Amazon, Tesla, Meta(FB), Paypal 等数百个知名大厂员工 Star,
也有 腾讯、华为、字节跳动、Microsoft、Zoom、知乎 等 工程师/专家/架构师 提了 PR/Issue,
还被 腾讯、华为、百度、SHEIN、快手、中兴、传音、圆通、美图 等各大知名厂商用于各类项目。
apijson-query-spring-boot-starter
1.0.1-1.0.2 更新内容:
- 返回结果使用驼峰规则转换;
- 修复list转为字符串问题;
- 修复查询空值报错问题;
插件介绍
一个快速构建apijson查询条件的插件
通常我们在数仓或者其他场景中会使用apijson提供通用接口,这时候会有其他应用需要调用apijson接口,虽然apijson提供通用的json格式参数调用, 但是由于apijson单独实现一套语法规则,需要学习成本,此插件的目的就是像使用mybatis plus构建sql查询参数一样,去构建apijson查询条件,无需任何apijson语法学习,即可完成通用查询请求。
查询构建使用示例
- 基于ApiJsonQueryLambdaWrapper构建查询
public class Test { public void testQuery() { ApiJsonQueryLambdaWrapper queryWrapper = ApiJsonQueryWrappers.lambdaQuery() .setSchema("模式名") .setTableName("表名") .setBiSigns("业务标识") .select("查询列") .eq("条件判断", "条件列", "条件值") // ... ; } }
- 基于ApiJsonQueryStringWrapper构建查询
public class Test { public void testQuery() { ApiJsonQueryStringWrapper queryWrapper = ApiJsonQueryWrappers.query() .setSchema("模式名") .setTableName("表名") .setBiSigns("业务标识") .select("查询列") .eq("条件判断", "条件列", "条件值") //... ; } }
- 基于ApiJsonQueryMapWrapper构建查询
public class Test { public void testQuery() { Map<String, Object> param = new HashMap<>(); //apijson原生语法 param.put("键", "值"); //... ApiJsonQueryMapWrapper queryWrapper = ApiJsonQueryWrappers.mapQuery() .setQueryParam(param); } }
方法调用使用示例
提供ApiJsonQueryTemplate模板方法
- 查询一条数据 getOne(查询条件,转换类型)
public class Test { @Autowired private ApiJsonQueryTemplate apiJsonQueryTemplate; public void testGetOne() { User user = apiJsonQueryTemplate.getOne(queryWrapper, User.class); } }
- 查询条数 count(查询条件)
public class Test { @Autowired private ApiJsonQueryTemplate apiJsonQueryTemplate; public void testCount() { Long count = apiJsonQueryTemplate.count(queryWrapper); } }
- 查询列表 getList(查询条件,转换类型)
public class Test { @Autowired private ApiJsonQueryTemplate apiJsonQueryTemplate; public void testGetList() { List<User> userList = apiJsonQueryTemplate.getList(queryWrapper, User.class); } }
- 查询分页列表 getPageList(查询条件,当前页,页大小,转换类型)
public class Test { @Autowired private ApiJsonQueryTemplate apiJsonQueryTemplate; public void testGetPageList() { ApiJsonPageInfo<User> userPageList = apiJsonQueryTemplate.getPageList(queryWrapper, 1, 10, User.class); } }
扩展查询数据源示例
提供默认基于http形式的apijson数据源查询方法,如果不满足需求,可继承DwQueryDao接口,实现getData方法,然后再装配Bean
public class AutoConfiguration { @Resource private ApiJsonQueryProperties apiJsonQueryProperties; @Bean public ApiJsonQueryTemplate apiJsonQueryTemplate() { log.debug("加载自定义查询数据源实现...."); ApiJsonQueryTemplate apiJsonQueryTemplate = new ApiJsonQueryTemplate(); //自定义查询数据源 ApiJsonQueryDao customQuery = new CustomQueryImpl(apiJsonQueryProperties); apiJsonQueryTemplate.setDao(customQuery); return apiJsonQueryTemplate; } }
注解说明
- ApiJsonTableName 表名注解
@ApiJsonTableName( value = "表名", schema = "模式名", biSigns = "业务标识", desc = "描述" ) public class TestDO{ } //注解设置完成后,只需要在构建查询条件时 setTableName(TestDO.class)即可
- ApiJsonTableField 字段名注解
@ApiJsonTableName( value = "表名", schema = "模式名", biSigns = "业务标识", desc = "描述" ) public class TestDO { //将name映射为name2查询 @ApiJsonTableField(value = "name2") private String name; //忽略该字段查询 @ApiJsonTableField(exist = false) private String value; } //注解设置完成后,只需要在构建查询条件时 setTableName(TestDO.class)即可
https://gitee.com/mingbaobaba/apijson-query-spring-boot-starter
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
谈谈 RocketMQ 5.0 分级存储背后一些有挑战的技术优化
作者:斜阳 RocketMQ 5.0 提出了分级存储的新方案,经过数个版本的深度打磨,RocketMQ 的分级存储日渐成熟,并成为降低存储成本的重要特性之一。事实上,几乎所有涉及到存储的产品都会尝试转冷降本,如何针对消息队列的业务场景去做一些有挑战的技术优化, 是非常有意思的事。 这篇文章就跟大家探讨下,在消息系统这样一个数据密集型应用的模型下,技术架构选型的分析与权衡,以及分级存储实现与未来演进,让云计算的资源红利真正传达给用户。 背景与需求 RocketMQ 诞生于 2012 年,存储节点采用 shared-nothing 的架构读写自己的本地磁盘,单节点上不同 topic 的消息数据会顺序追加写 CommitLog 再异步构建多种索引,这种架构的高水平扩展能力和易维护性带来了非常强的竞争力。 随着存储技术的发展和各种百G网络的普及,RocketMQ 存储层的瓶颈逐渐显现,一方面是数据量的膨胀远快于单体硬件,另一方面存储介质速度和单位容量价格始终存在矛盾。在云原生和 Serverless 的技术趋势下,只有通过技术架构的演进才能彻底解决单机磁盘存储空间上限的问题,同时带来更灵活的弹...
- 下一篇
自动化测试工具:TestHub V1.0.3 版本发布
自动化测试工具:TestHub V1.0.3 版本发布 简介 TestHub 是一款基于流程编排的自动化测试工具。是为了解决在软件开发旅程中测试流程管理和执行的复杂挑战而诞生的。传统测试工具可能局限于接口级自动化,无法满足多样化的需求,而我们在 TestHub 中引入了独特的流程编排功能,让您能够轻松定义、管理和执行测试流程。无论是自动化测试、流程调度还是其他自动化任务,TestHub 的插件式架构都能够满足您的无限扩展需求。 使用手册:http://nsrule.com/ 演示环境:http://testhub.nsrule.com:11018/#/ Gitee 开源地址:https://gitee.com/dromara/TestHub Gitub 开源地址:https://github.com/dromara/TestHub 演示视频:https://www.bilibili.com/video/BV1X94y1v7ak/ 安装包:https://url37.ctfile.com/d/42659137-59604925-26bdd9?p=3710 (访问密码: 3710) 1....
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7安装Docker,走上虚拟化容器引擎之路
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Linux系统CentOS6、CentOS7手动修改IP地址