badqiu

XPer
随笔 - 46, 文章 - 3, 评论 - 195, 引用 - 0
数据加载中……

[rapid-framework]代码生成器发布:rapid-generator-v1.0

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

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

本代码生成器的特性

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

代码生成器的运行

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

代码template目录结构

代码模板目录

 

 

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


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

 

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

posted on 2008-07-22 09:09 badqiu 阅读(2464) 评论(7)  编辑  收藏

评论

# re: [rapid-framework]代码生成器发布:rapid-generator-v1.0  回复  更多评论   

用fmpp吧,比你的强大多了
2008-07-22 11:48 | xfan

# re: [rapid-framework]代码生成器发布:rapid-generator-v1.0  回复  更多评论   

@xfan
两者的目的不同,这个就是可以实际应用于开发使用的生成器.
数据模型等都已经为你构建好,只要根据你的系统,修改内置的模板就行了.
2008-07-22 12:44 | badqiu

# re: [rapid-framework]代码生成器发布:rapid-generator-v1.0  回复  更多评论   

看来是挺好的东东,下载回来看看
2008-07-22 15:12 | nickey

# re: [rapid-framework]代码生成器发布:rapid-generator-v1.0  回复  更多评论   

能否制作一个基于struts2的web项目呢?下午试了一下 感觉很好用的
确实非常方便的好东西 可是我比较习惯用struts2 楼主的视频教程是基于struts1的 希望楼主百忙之中能否制作一个基于struts2的web项目 小弟感激不尽!82149317@qq.com 我的邮箱
2008-10-31 16:44 | 孙彬彬

# re: [rapid-framework]代码生成器发布:rapid-generator-v1.0  回复  更多评论   

请教下:为什么rapid-framework项目改成struts2之后 不能修改后缀了?难道后缀只能是 .action吗?
2008-10-31 19:03 | 孙彬彬

# 配置[未登录]  回复  更多评论   

如何在generator.properties中配置oracle数据库啊
2009-05-11 14:40 | 莉莉

# re: [rapid-framework]代码生成器发布:rapid-generator-v1.0  回复  更多评论   

@莉莉
普通的数据库将jdbc.url等配好就行了。
只有oracle还要配一下jdbc.schema,并且oracle数据库在运行GeneratorMain时要注意表名有大小写。
2009-05-27 09:52 | badqiu

只有注册用户登录后才能发表评论。


网站导航: