有没有好的能够从建表语句生成代码的脚手架工具?

2015-09-08 18:15:57 +08:00
 jadetang

如果,本人搞 java ,请教有没有这样的工具。

4520 次点击
所在节点    Java
31 条回复
justlikemaki
2015-09-08 18:30:22 +08:00
eclipse 加 hibernate 就可以反向映射
jadetang
2015-09-08 19:04:50 +08:00
@justlikemaki 我是想生成 service , dao 啊之类的代码
denger
2015-09-08 19:07:38 +08:00
生成的代码大多数不仅没用,还增加维护成本,个人极其反对代码自动生成。
无非就是想解决大量代码重复不想写的问题呗?但是生成代码方式是最差的解决方案。完全可以从设计角度去解决。
ichou
2015-09-08 19:21:17 +08:00
大 rails 欢迎你
zts1993
2015-09-08 19:23:30 +08:00
@jadetang 也可以啊。。。
neoblackcap
2015-09-08 19:32:57 +08:00
@denger 要维护的应该是 code generator 而不是生成的代码,难道你还要手写 bytecode?
wdlth
2015-09-08 19:37:39 +08:00
数据库生成 Model ?
guoqiao
2015-09-08 19:56:07 +08:00
django: python manager.py inspectdb
jadetang
2015-09-08 20:52:02 +08:00
@ichou 应该就是 ror 那种方式吧。有一个表的创建 sql ,然后自动生成增删改查的 service , dao , model 之类的 java 类。
denger
2015-09-08 21:31:25 +08:00
@neoblackcap 你的意思是生成基础的 CURD 之后,如果某个 Service 业务有调整,应该去修改代码生成器然后重新生成一下,而不是去修改具体的某个业务代码???开玩笑吧?
denger
2015-09-08 21:38:49 +08:00
@jadetang spring-roo 可以满足你的需求 http://projects.spring.io/spring-roo/
neoblackcap
2015-09-08 21:42:45 +08:00
@denger 有点那个意思,但是又不全是。若是业务没有变得话,同样的业务需要产生同样的代码,若是变了,这些代码自然也会变。不管你手动改还是机器生成也是一样对不对?

为什么很多人排斥自动化生成的代码?主要是那些 generator 写得太烂了,就好比你的业务变更了,你也不会直接改 bytecode ,而是改源代码一样。
自动化生成的代码没有错,错是那些生成器太烂了,明明若是只生成基础部分代码还是很靠谱的,偏偏要求全。还有就是若是你的代码耦合度太高了,但是 Java 不是一般会用 Data Mapping 的模式吗? DAO 不是用来解耦的?
还有就是哪怕上了代码生成器也没关系啊,那只不过是实现了一门 DSL 而已。维护的只不过变成了更高级的语言以及 DSL (这个若是写得好,自然不用维护)
qingxp9
2015-09-08 21:57:47 +08:00
一看这标题就想到 rails generate scaffold
OpooPages
2015-09-08 22:13:51 +08:00
dao 可以生成,但 service 层通常是写业务逻辑的地方,是一个系统最需要手工编码的层,似乎自动生成比较不妥吧,除非你的业务逻辑就是跟着数据表结构走的。
denger
2015-09-08 22:17:14 +08:00
@neoblackcap code converter (java->bytecode, php->c++ ) 和 code generator 本身就是不是一个概念的上东西。
neoblackcap
2015-09-08 22:26:41 +08:00
@denger 然而楼主不是问 SQL->Java 的工具么?这真的不是 DSL 吗?
denger
2015-09-08 22:33:27 +08:00
SQL -> JAVA 怎么可能是 DSL , 一个最基础的存储,离业务逻辑距离本身非常远,即使要 DSL ,也不应该是从 SQL 的层面做,而是从具体领域或业务层面,而不用管在乎用的是什么存储。

楼主要的只是一个脚手架的生成器,这些都扯远了....
zonghua
2015-09-08 22:34:05 +08:00
hibernate tools 吖,就是生成 jpa 映射,然后在看情况修改。难道真的要手动写几十个表的映射?一个属性名拼错了就够玩的了。
jadetang
2015-09-08 23:29:46 +08:00
@zonghua 差不多这意思。
zonghua
2015-09-08 23:39:28 +08:00
@jadetang java 项目的配置文件看得我都要疯了,看了很多次,结果还是各种异常。

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

https://www.v2ex.com/t/219180

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

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

© 2021 V2EX