项目中很多基本代码都是对一个表进行增删改查的,写了个代码生成器,根据建表语句,和写好的模板生产基本的代码,和 maven 的 archetype 差不多,当然比那个功能多一点。
https://github.com/jadetang/maliang
我是来求 star 的。 ~(@^_^@)~
1
adexbn 2015-10-15 22:36:31 +08:00 via iPhone
以前也这么搞过,后来觉得很多 IDE 和框架都可以做这个,就没再继续
|
2
JiaFeiX 2015-10-15 23:32:23 +08:00
赞同,希望未来编程可以更加自动化!
|
3
FrankFang128 2015-10-15 23:42:59 +08:00
Rails
|
5
jadetang OP @FrankFang128 ror 确实很叼,可惜没有机会用。但是 java 好像就没有这种东西。
|
6
a358003542 2015-10-16 02:59:34 +08:00
不要考虑生成代码,考虑生成数据。
|
7
li24361 2015-10-16 08:36:03 +08:00
mark
|
8
sefemp 2015-10-16 09:12:53 +08:00
Maliang(马良), the name of this project comes from a character of folk tail in China who has a magical brush by which he can draw any thing and turn it to real thing.
这是英语是楼主自己写的吗? 是的话,你的英语功底比代码功底强 |
9
ijse 2015-10-16 09:26:56 +08:00
感觉思路不对,应该修改框架以不需要这样重复生成代码才对啊。。。
代码越多,维护成本可能越大 |
10
langzizx39 2015-10-16 09:43:36 +08:00
@jadetang spring-roo ?听说能简单实现像 ror 那样,不过没实际用过。
|
11
jadetang OP @ijse 这个项目的目的是刚刚开始项目的时候,根据你的表结构生成一些基本的代码,例如 model , dao , service , controller 。并且根据公司常用的项目框架生成代码结构和目录。你不同的表,对应的 model 肯定不一样吧,这不存在重复代码的问题啊。在 example 里面有个 demo ,你可以试一下就知道是干什么的了。
|
12
jadetang OP @a358003542 如果你拿到表结构,肯定是可以生成 insert 语句造数据的,但是数据一般都是和业务逻辑相关的,这样的话,没有办法生成有用的数据。
|
13
ijse 2015-10-16 09:49:16 +08:00
@jadetang 我之前做 java 的时候也用过这种生成器,自动生成一些 model 等代码。 我只是觉得这种重复的劳动应该由框架去解决。
|
15
jadetang OP @langzizx39 看了一些,那个比我写的强多了,数据实体可以指定 one-to-many ,如果早知道那个我就不写自己的拉。不过不知道能不能指定自己的模板,因为其实每个公司都不一样的,比如我们公司一直用 spirng3.0.5 。但是 spring-roo 自带的模板,肯定是 4.0 以上的版本。
|
17
ooTwToo 2015-10-16 10:03:38 +08:00
要是能根据数据库存在的表生成就更好了,就像 Mybatis 的 generator 插件一样.
|
18
jadetang OP @ooTwToo 其实是可以做到的,你填个数据库连接,然从数据库把表的表结构给读出来,我其实在公司搭了一个网页,让他们自己输入表结构。
|
20
cyberdak 2015-10-16 10:21:53 +08:00
代码生成器就是每个码农都会经历的一个轮子
CRUD 工作太多的话,基本都会想着写一个代码生成器 |
21
jc4myself 2015-10-16 10:25:37 +08:00 via iPhone
eclipse 有反向工具,可选择生成哪些 schema ,支持 schema 重命名; mybatis 的 mybatis-generator ,可配置生成 schema ,文件生成路径,数据类型映射,再在这基础上开发下就更好用了;这种工具去扫系统自带的表获取表名列名更好,不用 ddl ;既然是 java 希望提供可运行 java 就完美了
|
22
jadetang OP @jc4myself mybatis-generator 没用过,但是我之前公司的数据库访问层都是 jdbc 的,所以用不上。
|
23
slixurd 2015-10-16 10:51:33 +08:00
然而我选择了不用写简单 CRUD 的 Spring-data 。
复杂 SQL 再用注解形式写上去就好了。 不过还是需要自己写 Bean 。 |
25
a358003542 2015-10-16 12:42:38 +08:00
我还是那句话,不要考虑生成代码,生成数据。 字符串的组合和 parse 等你真正学会了,再来谈论代码生成和自造编程语言的事啊。不要好高骛远、
|
26
Iteye 2015-10-18 13:11:59 +08:00
已经 pull 下来了 请楼主把 todo 里的任务写的清楚点 我没事的时候玩玩
|
27
jadetang OP update 了。不过我其实想不到有什么能改进的了,不是因为这个东西好。是因为
1. 很简单。 2. 现在没什么人用,自然没有需求。 我写的这个东西,其实是标准 MVC 的结构,其中的 V 就是指的模板, M 指的是从建表语句拿到数据信息, C 很简单,就是做一些复制目录,和调用 velocity api 生成文件的操作。 这么说来,其实最繁琐,但是价值最大的也就是 V ,即更加符合平时开发需要的模板,不过这样的模板每个公司都不一样,并没有什么太多能做的事情。 |
29
kzzhr 2015-10-19 00:53:04 +08:00 via iPhone
画出 uml ,然后自动生成模型,基本方法集,建好数据库。。等楼主试试
|
31
jc4myself 2015-10-19 14:47:20 +08:00
@jadetang mybatis-generator 只是一个工具而已嘛,也可以用来生成 bean 的,还可以配置包路径。挺好用的
|