spring boot 里,对多个表都有增删改操作,对应多个控制器,但不每个单独建方法 ADD MODIFY DELETE方法

spring boot 里,比如我有三个表 news , newsgroup , newsdiscuss ,通过接口需要对这几个表都进行 增删修的操作,能不能不要每个控制器,都写 add modify delete 方法,而用通用 add modify delete 方法

单纯的看你的问题,不能确定。你可以具体说说你是为什么需要这样做的么,就是说你想要做的效果是什么,只有明白你想要的,才能回答你这个问题

如果你只是想实现你说的效果,你可以通过传参不通,调用不同的service,比如:type参数,为1时对news表进行增删改,为2时对newsgroup表
进行增删改,为3时对newsdiscuss 表进行增删改.
只是这也做后期的维护不是很友好,编写代码不要只考虑当前,也要考虑后期的维护。

不同业务不同的逻辑,尽量做到低耦合,这样后期维护扩展也方便,如果非得写在一个控制器里,那就一个service调用3个Repository,也就是dao

回复上两楼的,如果是很多表呢,比如几十上百个?要写一个大SWITH? 有没有更好的解决办法,比哪继承或泛型

如果你对于前端的传过来的数据能够完全信任,可以用让前端传tableName.insert、tableName.delete、tableName.update这种数参,然后后端根据规则解析,然后再去对相应的表进行对应处理。。

比如,前端传这几个参数

var1=table1.select&var2=needFieldNameArray&var3=filterFieldArray&var4=filterValueArray

后端根据var1可以解析出要对table1这张表做select操作,然后var2用于指定查询出哪些字段,var1与var2可以解析成

SELECT  needFieldNameArray[0],needFieldNameArray[1].....
FROM table1

var3和var4可以一起转换为:

WHERE filterFieldArray[0] = filterValueArray[0] and filterFieldArray[1] = filterValueArray[1] .....

合起来就是:

SELECT  needFieldNameArray[0],needFieldNameArray[1].....
FROM table1
WHERE filterFieldArray[0] = filterValueArray[0] and filterFieldArray[1] = filterValueArray[1] .....

这样一个简单的查询就ok了。。

然后类似的,其他功能也是这样。。。

另外,借助mybatis自动生成器实现这些更容易。。

额,说了一大堆,感觉几乎没有安全性了,和让前端直接传sql给数据库执行有啥区别?也就不暴露数据库密码吧,后端起中转作用?

那么,以上纯属废话了,做毕设可以这么做,临近下班的消磨

如果后台用mybatis的话,有个工具mybatis-plus-core,这货可以简化crud操作,前提是你的所有service接口得继承它,然后用工具自带的方法实现公用的crud