`
badqiu
  • 浏览: 669883 次
  • 性别: Icon_minigender_1
  • 来自: 珠海
社区版块
存档分类
最新评论

最适合实际开发需要的:<代码生成器>发布:rapid-generator-v1.0

阅读更多

现阶段内置模板可以生成的包括:

可以生成java的hibernat model+annotation,hibernate model+xml,dao,manager,struts+struts2 action类

生成jsp的增删改查.  (生成的代码与rapid-framework绑定才比较有意义)

 

通常代码生成器存在的问题.

  • 二次开发困难
  • 过于智能,自动插入我们的项目中,程序员还需考虑旧的代码会不会被覆盖的问题
  • 没有将存放模板的目录名称及文件名称利用起来,导致还需配置每个模板文件生成的文件名,目录结构
    具体请查看我写的文章:为何代码生成器都要这么智能呢?

本代码生成器的特性

  • 基于FreeMarker模板语言
  • 基于数据库,并支持多种数据库(mysql,sql server,oracle测试通过)
  • 半手工方式,生成的代码放在某个目录,再手工拷贝回来工作区
  • 易于做二次开发,整个生成器本身就是java源代码,源代码核心十分精简,并且鼓励你做修改代码,也可以作为任何语言的代码生成器
  • 配置简单,只有一个配置文件generator.properties
  • 以application方式运行生成器,生成不同的table直接修改相关java代码即可
  • 将文件系统的目录名称及文件名称作为生成器的一部分,模板文件的的名称与目录名称可以直接引用相关变量,如 ${basepackage}/${className}.java  (${className}=Blog,则会生成Blog.java)
  • 以@testExpression结尾的模板文件为有条件忽略,如果testExpression的值在数据模型为true则生成该文件,生成的文件不会包含@testExpression,反之则不生成该文件(应用场景:用于在是否要生成hibernate联合主建的文件中)
  • 支持文件插入操作,如模板输出生成的地方已经有该同名的文件存在,并且文件中有包含"webapp-generator-insert-location"标记,则模板生成的内容会插入在该标记之后.该特性对如生成的spring配置内容插入spring配置文件十分有用

代码生成器的运行

  • 将generator_lib中的jar加入classpath,generator_lib自带了几种常用jdbc驱动
  • 修改generator.properties的数据库连接属性及其它属性
  • 以application的方式运行GeneratorMain类,要生成不同的table,直接修改代码即可
public class GeneratorMain {
	public static void main(String[] args) throws Exception {
		Generator g = new Generator();
		
		g.clean();
		g.generateTable("blog");
//		g.generateAllTable();
	}
}

 

代码template目录结构

代码模板目录

 

 

项目下载: http://code.google.com/p/rapid-generator/downloads/list

项目HOME: http://code.google.com/p/rapid-generator

本生成器也将作为rapid-framework的一部分,即将发布,敬请关注.

 

并且欢迎大家加入讨论组:

分享到:
评论
10 楼 longlongriver 2008-10-06  
呵呵,一直很佩服badqiu老兄的创新精神,其主导的几个开源项目也非常不错,充分体现了软件开发简洁、实用至上的精神!我现在就一直在用着他的rapid-validation项目的成果!

这个东西也非常的不错哦,大家可以在这个代码生成器的基础上制作自己的模板,相信能大大降低重复开发的工作量!

9 楼 badqiu 2008-07-29  
jasongreen 写道
我曾经也打算写这样一个代码生成器框架,现在代码找不到了。用的是velocity。在合并既有配置文件时遇到了问题,放弃了,(需要在现有配置文件中插入模板,很麻烦),不知道楼主是怎么解决的,比如struts.xml


你可以看insert_demo目录的内容.

模板输出生成的地方已经有该同名的文件存在,并且文件中有包含"webapp-generator-insert-location"标记,则模板生成的内容会插入在该标记之后.
8 楼 jasongreen 2008-07-29  
我曾经也打算写这样一个代码生成器框架,现在代码找不到了。用的是velocity。在合并既有配置文件时遇到了问题,放弃了,(需要在现有配置文件中插入模板,很麻烦),不知道楼主是怎么解决的,比如struts.xml
7 楼 penghao122 2008-07-29  
不知道这个框架怎么样。。下载下来测试一下
6 楼 badqiu 2008-07-25  
40020072 写道
想问一下楼主,rapid-framework大概什么时候发布呢,很期待啊,等3天了 ~


计划下周发布吧,大家多多关注,是我继续开发的动力.
5 楼 40020072 2008-07-25  
想问一下楼主,rapid-framework大概什么时候发布呢,很期待啊,等3天了 ~
4 楼 badqiu 2008-07-23  
hanzaihua 写道
非常感谢楼主,使用了这个框架生成了代码,还是比较清晰的,但编译时缺乏一些包,如:
import javacommon.util.*;
import javacommon.web.util.*;
import javacommon.base.*;
import javacommon.page.*;
import javacommon.page.impl.*;

不知道在哪里下载,麻烦楼主解答下。

另外,我之前我搞了这个一个项目,但只能生成页面,对你的模板设置或多数据库支持,非常佩服,向你致敬。


rapid-generator现在的内置的模板是属于rapid-framework的一部分.不过rapid-generator可以作为独立的生成器,修改成适合你项目的.

3 楼 sunsong 2008-07-23  
有时间好好看看
2 楼 acdc 2008-07-23  
一个问题: 代码生成器支持在生成代码上进行人工修改么? 如果人工修改了,再次生成的时候,能否保留那些人工修改痕迹?
1 楼 hanzaihua 2008-07-22  
非常感谢楼主,使用了这个框架生成了代码,还是比较清晰的,但编译时缺乏一些包,如:
import javacommon.util.*;
import javacommon.web.util.*;
import javacommon.base.*;
import javacommon.page.*;
import javacommon.page.impl.*;

不知道在哪里下载,麻烦楼主解答下。

另外,我之前我搞了这个一个项目,但只能生成页面,对你的模板设置或多数据库支持,非常佩服,向你致敬。

相关推荐

    C#微软培训资料

    &lt;&lt;page 1&gt;&gt; page begin==================== 目 目目 目 录 录录 录 第一部分 C#语言概述.4 第一章 第一章第一章 第一章 .NET 编 编 编程语言 程语言编程语言 程语言 C#.4 1.1 Microsoft...

    JAVA上百实例源码以及开源项目源代码

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    JAVA上百实例源码以及开源项目

     Tcp服务端与客户端的JAVA实例源代码,一个简单的Java TCP服务器端程序,别外还有一个客户端的程序,两者互相配合可以开发出超多的网络程序,这是最基础的部分。 递归遍历矩阵 1个目标文件,简单! 多人聊天室 3...

    java开源包10

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包8

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包1

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包11

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包2

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包3

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包6

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包5

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包4

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包7

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包9

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    java开源包101

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

    Java资源包01

    JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (&lt;jcaptcha:image label="Type the text "/&gt; ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...

Global site tag (gtag.js) - Google Analytics