PHP 转 Java ,上千张表需要 CRUD

2024-01-03 11:30:07 +08:00
 VensonEEE

原系统是 php 一个开源的系统搞的,积累了多年的数据,大约上千张表。

现在系统迁移到 java ,传统的 ssm ,顿时尴尬了。这么多表的 crud ,要生成 MVC 、mybaitis 代码,简直是噩梦,而且逻辑基本都一样。

有无直接成熟的组件,不生成代码,完成这些表的基本 crud 操作,不考虑权限,最好带分页。

10741 次点击
所在节点    Java
87 条回复
jlkm2010
2024-01-03 13:14:15 +08:00
mybaitis-plus
potatowish
2024-01-03 13:15:17 +08:00
你可能对 java 有什么误解,写代码要灵活。不用生成类,循环读取表,根据表字段动态生成 sql ,我刚毕业那会就做过,大概是报表系统类似的需求
potatowish
2024-01-03 13:20:27 +08:00
@potatowish 控制器中,一个接口共用,参数传表名、字段名
mws
2024-01-03 13:56:53 +08:00
easycode 插件可以生成 controller ,service 层代码,还可以自己用 velocity 写模板
cslive
2024-01-03 14:03:49 +08:00
velocity 模板生成,其它类似模板也行
zzzmh
2024-01-03 14:06:48 +08:00
mybatisplus + idea 插件 mybatisx 但是只能生成 crud 而且是 jsp 还是接口,接口这块应该是要自己写的
c2const
2024-01-03 14:16:10 +08:00
重构不彻底,不如不重构,接着在原来的代码屎山上开发 :)
mars2023
2024-01-03 14:18:29 +08:00
@XCFOX #17 你这是让 op 不用重构后端,改成重构前端是吧;
再则,GraphQL 对于客户端真是噩梦 😈(又或者是因为我只是一个很菜的客户端🐶)
VensonEEE
2024-01-03 14:20:23 +08:00
VensonEEE
2024-01-03 14:22:38 +08:00
大家觉得这个怎么样?
大量重复代码,我感觉很难接受... 编译速度,启动速度,内存,都是难以接受的。
#22 是个办法 ,我想找个成熟点的,少修 bug 早下班...
taogen
2024-01-03 14:44:38 +08:00
@VensonEEE #29
国内开源项目不建议使用
taogen
2024-01-03 14:52:05 +08:00
1. PHP 到 Java ,换语言本来就工作量大,不仅仅是 CRUD 操作工作量大。可以考虑重新设计,用 Java 重写。

2. 表多不用 ORM (object-relational mapping) 就行,上面已经有人说了用 JdbcTemplate 。
lcy630409
2024-01-03 14:52:14 +08:00
你是想要一个读取数据库的工具?
php 的大部分逻辑都没问题的话,就继续保留,你就直接调用他的接口就行,php 不对外,把 php 当做一个中间层,
lcy630409
2024-01-03 14:53:27 +08:00
如果只有你一个人 建议别动算了,怎么方便怎么来 能跑就行,千万别想着大动干戈,不然这年都过不好了
ZiNai
2024-01-03 15:06:26 +08:00
让 PHP 老项目继续跑着。新需求开新项目,随便什么你喜欢的技术栈,你这个偏业务的项目核心就是读数据库呗。然后渐进式的替换掉老接口。部分 common lib 直接 gpt 转写或者放 db 的 function 里呗
zjsxwc
2024-01-03 15:43:10 +08:00
@XCFOX #17
@VensonEEE #28

我想问一下,GraphQL 与 APIJSON 的使用场景。

APIJOSN 我看了下它的文档,知道 APIJSON 本质就是一个可以在 json 里嵌入 sql 语句的 sql 方言。

GraphQL 的 server 我看了下,
和云厂商的 serverless lambda 差不多,serverless 要用户写每一个 api 的实现,
GraphQL 同样需要用户写每个 query 与 mutation 的实现,
serverless 通过 step-functions 来组合不同 api 到一次请求,GraphQL 通过其语法来组合不同查询到一次请求。
kekeco
2024-01-03 15:50:38 +08:00
写通用的工具生成下就行了 基础的都有了 就看你自己怎么定义模板的问题
VensonEEE
2024-01-03 16:46:38 +08:00
@zjsxwc 大量的业务表,低代码,多租户;以至于传统的 controller services mapper model 那一套不适用了。
另一个是接口大多,大部分都是重复的工作量。怎样准确、统一的完成业务,不就得这么玩么。
chosen1cwp
2024-01-03 17:07:29 +08:00
erupt
sampeng
2024-01-03 17:11:36 +08:00
从写单元测试开始。上千的表。接口也差不多上千了。你怎么保证重构完了一摸一样的结果和逻辑?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/1005420

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX