PHP 转 Java ,上千张表需要 CRUD
source link: https://www.v2ex.com/t/1005420
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
原系统是 php 一个开源的系统搞的,积累了多年的数据,大约上千张表。
现在系统迁移到 java ,传统的 ssm ,顿时尴尬了。这么多表的 crud ,要生成 MVC 、mybaitis 代码,简直是噩梦,而且逻辑基本都一样。
有无直接成熟的组件,不生成代码,完成这些表的基本 crud 操作,不考虑权限,最好带分页。
BaiShui 18 小时 47 分钟前 mybaitis-plus 看看文档就能搞
|
huihuiHK 18 小时 46 分钟前 mybaitis-plus 一键生成
|
lsk569937453 18 小时 46 分钟前 闲得蛋疼才重构。
|
zhengshangjin 18 小时 46 分钟前 这不是吃饱了撑的么,PHP 继续迭代跑呗。
|
VensonEEE 18 小时 44 分钟前 @zhengshangjin 太老了,漏洞补不了了,刚搞 XC ,一起换了...
|
cvbnt 18 小时 41 分钟前 via Android IDEA 很多插件能一键生成
|
VensonEEE 18 小时 32 分钟前 有没有不用生成的,生成几千个文件也很糟心,那种连上数据库就能提供 api 的...
|
Morii 18 小时 21 分钟前 如果都是生成的话 不得有上万个类啊。。这 Java 项目编译一下得多慢?
这些表有没有什么共同点?没有的话怎么搞出几千个的? |
sparklee 18 小时 18 分钟前 自己封装一下, 直接 JdbcTempleate 执行 sql
|
sparklee 18 小时 17 分钟前 plate
|
199808lanlan1111 18 小时 13 分钟前 via Android 团队多少人,这种重构应该要分多个服务
|
CheckTime 18 小时 11 分钟前 要不看看 Jeecg 的代码生成,然后看能不能借鉴。批量导入表,批量生成代码
|
gejun123456 17 小时 50 分钟前 mybatis + pageHelper 就行了,可以试试 intellij 插件 MybatisCodeHelperPro 快速生成代码
|
zjsxwc 17 小时 41 分钟前 不如直接针对 php 项目写个转译器转换到 java jpa 。
|
cabing 17 小时 7 分钟前 如果功能一样,看能不能写个代码生成器
|
jlkm2010 17 小时 6 分钟前 mybaitis-plus
|
potatowish 17 小时 5 分钟前 via iPhone 1 你可能对 java 有什么误解,写代码要灵活。不用生成类,循环读取表,根据表字段动态生成 sql ,我刚毕业那会就做过,大概是报表系统类似的需求
|
potatowish 17 小时 0 分钟前 via iPhone @potatowish 控制器中,一个接口共用,参数传表名、字段名
|
mws 16 小时 23 分钟前 via Android easycode 插件可以生成 controller ,service 层代码,还可以自己用 velocity 写模板
|
cslive 16 小时 16 分钟前 velocity 模板生成,其它类似模板也行
|
zzzmh 16 小时 13 分钟前 mybatisplus + idea 插件 mybatisx 但是只能生成 crud 而且是 jsp 还是接口,接口这块应该是要自己写的
|
c2const 16 小时 4 分钟前 重构不彻底,不如不重构,接着在原来的代码屎山上开发 :)
|
VensonEEE 15 小时 58 分钟前 大家觉得这个怎么样?
大量重复代码,我感觉很难接受... 编译速度,启动速度,内存,都是难以接受的。 #22 是个办法 ,我想找个成熟点的,少修 bug 早下班... |
taogen 15 小时 28 分钟前 1. PHP 到 Java ,换语言本来就工作量大,不仅仅是 CRUD 操作工作量大。可以考虑重新设计,用 Java 重写。
2. 表多不用 ORM (object-relational mapping) 就行,上面已经有人说了用 JdbcTemplate 。 |
lcy630409 15 小时 28 分钟前 你是想要一个读取数据库的工具?
php 的大部分逻辑都没问题的话,就继续保留,你就直接调用他的接口就行,php 不对外,把 php 当做一个中间层, |
lcy630409 15 小时 27 分钟前 如果只有你一个人 建议别动算了,怎么方便怎么来 能跑就行,千万别想着大动干戈,不然这年都过不好了
|
ZiNai 15 小时 14 分钟前 via iPhone 让 PHP 老项目继续跑着。新需求开新项目,随便什么你喜欢的技术栈,你这个偏业务的项目核心就是读数据库呗。然后渐进式的替换掉老接口。部分 common lib 直接 gpt 转写或者放 db 的 function 里呗
|
zjsxwc 14 小时 37 分钟前 @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 14 小时 30 分钟前 写通用的工具生成下就行了 基础的都有了 就看你自己怎么定义模板的问题
|
VensonEEE 13 小时 34 分钟前 @zjsxwc 大量的业务表,低代码,多租户;以至于传统的 controller services mapper model 那一套不适用了。
另一个是接口大多,大部分都是重复的工作量。怎样准确、统一的完成业务,不就得这么玩么。 |
chosen1cwp 13 小时 13 分钟前 erupt
|
sampeng 13 小时 9 分钟前 从写单元测试开始。上千的表。接口也差不多上千了。你怎么保证重构完了一摸一样的结果和逻辑?
|
sampeng 13 小时 7 分钟前 按回车按快了。。
另一方面肯定不是一蹴而就,前面网关做分离工作,迁移一批网管流转新流量过来一批。反正这么大的规模,就算是看起来是差不多的业务逻辑,但凡错一个,估计得祭天。 |
5200 12 小时 53 分钟前 为什么要重构呢,要不试试 Go ,或者换 PHP 的 swoole 类型的框架。
|
zuixinwenyue 12 小时 45 分钟前 PDManer 看下这个,可以根据表来生成 controller service mapper entity 代码
|
meeop 12 小时 34 分钟前 逻辑基本都一样,那就还好了,无所谓多少张表,自己写个代码生成机解析库表自动生成
|
wu00 12 小时 26 分钟前 这种谁弄谁死;
唯一的出路是逐步替换慢慢迁移 |
llf007 12 小时 18 分钟前 我们开发个 APISQL 的中间件,不用写 JAVA 代码,直接用 SQL 生成 API ,自带分页。
如果只是每张表的基本 CRUD ,上千张表应该没什么压力。 只是再改改软件,让批量对整库每张表生成 API 的问题。 请到 www.apisql.cn 试着联系我们,看不能帮上忙。 |
llf007 12 小时 14 分钟前 少了字:(,回复不能修改,再发一下
我们开发个 APISQL 的中间件,不用写 JAVA 代码,直接用 SQL 生成 API ,自带分页。 如果只是每张表的基本 CRUD ,上千张表应该没什么压力。 只是再改改软件,让批量对整库每张表生成 API 的问题。 请到 www.apisql.cn 试着联系我们,看能不能帮上忙。 |
VensonEEE 12 小时 2 分钟前 |
llf007 11 小时 54 分钟前 是的,支持企业内网私有化部署。
|
renmu 11 小时 16 分钟前 via Android 又不是不能用.jpg
|
ZZ74 8 小时 22 分钟前 从业多年,没见过几千张表的项目.....
|
StarkWhite 6 小时 4 分钟前 2023 年了,还有人不知道 meta(facebook) 开源的 graphql ,都快 20k star 了,强烈推荐
https://www.v2ex.com/t/589138 |
StarkWhite 6 小时 3 分钟前 graphql 不用写代码,基本啥都能搞定
|
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK