能否一个接口搞定全库的所有表的查询操作

有一个脑洞的想法,针对的是简单的API查询,即不需对查出的数据进行复杂加工,能否使用一个接口搞定全库的查询操作呢?要实现以下几个目的:
1,一个接口,只要调用一个接口
2,支持=,>,<,>=,<=,in,like等基本搜索查询
3,支持分页
4,支持连表查询
5,要求调用者使用时不能太复杂
6,如果新增表,和字段的调整,不需要后管代码再次进行开发

有没有什么想法

直接传sql的话 还有什么是不能做的呢

後端自己封装复杂 前端调用就简单

拆分才是合理的思路,合并必然带来更高的复杂度。

笑死,你这不就是对数据库驱动中executeQuery的封装吗,你传入一个SQL语句的字符串,然后调用驱动中的execute就行了,你这个API根本没有意义啊

利用数据库模型来映射,前端只管传字段,找对应表,选择对应方法即可

你说的莫非就是传说中的sql查询平台?

1、定义一个Interface,里面包含需要的查询方法,比如selectByCondition(QueryParam queryParam);
2、所有具体业务类实现该接口,并实现查询方法。
3、定义一个工厂类,里面添加所有Interface的实现类,并通过@Autowired注入进来, 通过@PostConstruct注解的方法在工厂类初始化的时候把Interface所有的实现类都添加到一个Map中,key的名称就是具体实现的业务类的名称,value就是具体的已经注入进来的实现类。
4、提供一个controller接口,用来查询,比如说doSearch(),参数为具体业务名称和查询参数,该controller接口内部逻辑是通过业务名称从上一步的工厂类里的Map中获取具体的实现类,然后通过该实现类去调用之前定义的查询方法selectByCondition。
这样前端只需要调用一个接口,就可以实现查询所有业务,后端只需要告知前端后端都有哪些业务,把业务的枚举给到前端,以及查询参数的格式给到前端。
当然这一切都要有一个前提,就是后端的所有业务用来查询的表字段要相同,比如说主键统一id,名称统一name,状态统一status,创建时间统一create_time等等,我相信任何一个项目,不同业务间的表结构应该大致是类似的,除了特有的业务字段,其他按理应该是统一的,你可以顺着这个思路去尝试。

.

这个是业务问题,不是技术问题。
首先要确定你的业务范围之内,总结提炼重复的查询语句,然后总结出几个参数供前端调用即可。
只要你的返回结果不用具体实体类映射,就不存在改表改代码的问题。

如果要通吃的话,你还用sql吧, sql已经很成熟, 设计一套自己的查询语句(DSL)还要让前端学习你的DSL,
并且不出意外的话你设计的DSL肯定会有bug,
SQL大家都会,又成熟,基本上没有学习成本,也不存在语法的bug和解析问题。

如果你在一个不缺钱的大公司的话,就写慢慢写规则吧。

你说的应该就是mybatis-plus吧