
公司自研一款基于 Mybatis-Generator 的 CRUD 代码生成工具,能够自动生成 Controller-Business-Service-Mapper 四层。生成各层的出入参数和转换类(基于 JSON )。
使用下来非常快,CRUD 几乎不用再添加新代码。
大多数 Java 程序员开发工作避免不了 CRUD,故打算花些时间开源,不知道会不会有人用以及是否有类似的开源产品。
约定数据库表结果必有 ID/DELETED/CREATED_AT/CREATED_BY/MODIFIED_AT/MODIFIED_BY 6 个字段,且 DELETED 字段类型同 ID 字段( bigint ),deleted=0 表示未删除,deleted=id 值表示删除。
PS:尝试过 Mybatis-Plus 和 单纯 Mybatis-Generetor,还是要写部分代码。 PPS:分层模型各有各的习惯和说法,但用 CRUD 工具后基本不在有争论,无形消弭。
1 mlcq Apr 15, 2021 没兴趣,你这个工具怎么解决连表的问题,要是不需要连表,mp 都能解决了,你这个意义何在呢 |
2 wolfie Apr 15, 2021 这种代码生成挺多的,而且没难度。 |
3 lowic Apr 15, 2021 如果只有比较基础的功能的话,mp 应该已经做的够好了 |
4 akiakiseofficial Apr 15, 2021 收益不是很明显,相反想用这个工具还被限定了数据库字段。 另外,关于分层,除非是从零新建的项目,不然分层还是按照原有的模式来,要不会被后边维护的人骂死。 |
5 est Apr 15, 2021 你说的这种 「 CRUD 工具」 本质就是建立 RDBMS 视图 遇到视图不能解决的复杂逻辑,你的工具一样解决不了。 |
6 huifer Apr 15, 2021 |
7 catchexception Apr 15, 2021 多年没写过 CRUD 了。。。 |
8 hb0730 Apr 15, 2021 用 mp 自己在封装一下,从 controller 到 mapper 就都有了,在扩展一下 mp 的代码生成 |
9 fy Apr 15, 2021 作为一个 crud 框架作者,我意识到框架越是工于设计,反而会带来越高的使用成本……所以我计划全部生成 json schema 一把梭了 |
10 yungo8 Apr 15, 2021 via Android easy-code 然后自己写 groovy 模板也可以呀 |
11 gongym Apr 15, 2021 |
12 yxx1993 Apr 15, 2021 |
13 Imindzzz PRO 很难做到又通用又简单 有必要在自己公司小范围封装一个,推广开源我觉得没多大市场。 |
14 iceteacover OP @mlcq 这个工具不能解决连表问题,多表合并成前端对象还需要手工写。 我现在一般不连表查,单表查完再走第二条 SQL,把 sql 的连表放在内存,表查询尽量简单。 |
15 iceteacover OP @lowic mp 的确功能强大,但是有一个删除字段,只能用 0/1 或者 时间字段,我希望用 id 的 bigint,避免唯一索引和逻辑删除问题 https://cloud.tencent.com/developer/article/1531915 。这种逻辑如果写在自己的 crud 当中就很方便,相比较改造 mp 。 |
16 iceteacover OP @fy 真的没有狗头在最后吗?大佬请不要放弃... |
17 iceteacover OP @xd199153 谢谢提点,公司内部用大概是最大价值,开源反倒能用的少。 |
18 iceteacover OP @catchexception 恭喜脱离苦海 |
19 iceteacover OP @gongym go 大佬你好,我还在 Java 里挣扎,顺带问下 Java 转 Go 需要补哪些知识,到可用程度一般学大概要多久(天资一般偏下,写了几年 Java ) |
20 iceteacover OP @huifer jpa 大佬好,公司用 mybatis 惨。。。我看国外的程序员很多用 jpa,不知道为啥国内的几家公司都选择了 mybatis 。 |
21 fy Apr 15, 2021 @iceteacover 我真的计划这么搞,不过我是 python 实现的。但现在说起来自己用 python 的机会也不多了,主力是 ts 和 go |
22 iceteacover OP @fy 全栈牛逼,最近半年在公司写 react,感觉前端是很不一样的思维,有帮助。问下用 go 方便吗?要不要造轮子(目前主力 Java,有事实上的框架标准)? |
23 huifer Apr 16, 2021 mybatis 和 JPA 应该大差不差没必要太过于纠结使用谁,要说存在迁移数据库的话我可能选择 JPA 。mybatis 版本的 CRUD 插件也有 https://gitee.com/pychfarm_admin/crud @iceteacover |
24 ychost Apr 16, 2021 生成代码的一律拉黑,万一逻辑变复杂还是挺蛋疼的,最好是用 JPA 或者 Mybatis-Plus,tk.mybatis 之类的,隐藏细节,提供扩展性, |
25 Kaiv2   Apr 16, 2021 https://github.com/JavaHello/erm-generator 一个简单的 dao 层工具,支持 sql 差异输出。 |
26 clf Apr 16, 2021 Mybatis-Plus 的代码生成器生成 Service-Mapper 我觉得就够了……因为对外肯定是 VO 封装的。 要做进一步的统一管理,比如我设计的基类里就有 deleteFlag 、createTime 、updateTime 、id,四个字段,删除的时候用 MP 的逻辑删除配置,0L 是未删除,时间戳是已经删除。Time 字段都是用 MP 自带的注入方法注入。配置完一个 BaseModel 类后,其他全部的类继承它就好了。 |
27 fy Apr 17, 2021 @iceteacover golang 写 web 的话感觉和 js 的 koa,或者是 python 的 flask 差不多,应该没 Java 那么系统化。轮子倒也不用怎么弄 |
28 iceteacover OP @fy 谢谢 |
29 liian2019 Apr 23, 2021 我也写了一个 ,来应付公司统计代码量的问题 |