代码生成器rapidframework 快速开发资料.docx

上传人:b****4 文档编号:5474179 上传时间:2023-05-08 格式:DOCX 页数:19 大小:812.58KB
下载 相关 举报
代码生成器rapidframework 快速开发资料.docx_第1页
第1页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第2页
第2页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第3页
第3页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第4页
第4页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第5页
第5页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第6页
第6页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第7页
第7页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第8页
第8页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第9页
第9页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第10页
第10页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第11页
第11页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第12页
第12页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第13页
第13页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第14页
第14页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第15页
第15页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第16页
第16页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第17页
第17页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第18页
第18页 / 共19页
代码生成器rapidframework 快速开发资料.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

代码生成器rapidframework 快速开发资料.docx

《代码生成器rapidframework 快速开发资料.docx》由会员分享,可在线阅读,更多相关《代码生成器rapidframework 快速开发资料.docx(19页珍藏版)》请在冰点文库上搜索。

代码生成器rapidframework 快速开发资料.docx

代码生成器rapidframework快速开发资料

quick_start_guild 

UpdatedJul21,2010bybad...@

∙介绍

∙环境介绍

∙struts2+spring+hibernate详细搭建介绍

o1.创建一个struts2_demo的webproject

o2.拷贝rapid-framework至项目根目录

o3.设置项目的编码为utf-8

o4.设置源码路径

o5.将generator/lib的jars加入classpath

o6.安装插件hibernate及struts2

o7.在mysql数据库中创建表user_info

o8.修改生成器配置文件generator.xml的jdbc数据库连接信息其它属性暂不修改

o9.运行代码生成器GeneratorMain.java

o10.拷贝生成的代码至项目根目录,并刷新项目

o11.修改java_src/spring/applicationContext-datasource.xml的数据库连接信息

o12.部署应用struts2_demo至tomcat

o13.启动tomcat,访问URL:

介绍

以下将详细描述struts2+hibernate的项目搭建方法,其它的项目组合如(springmvc+iBatis,struts2+jdbc)可以参考如下步骤.

注意:

请使用firefox或是IE7阅读本wiki,IE6显示有问题

环境介绍

∙IDE:

MyEclipse6.5

∙数据库:

Mysql5

∙JDK:

1.5

struts2+spring+hibernate详细搭建介绍

1.创建一个struts2_demo的webproject

注意:

Webrootfoler的值为web

2.拷贝rapid-framework至项目根目录

将rapidframework.zip解压出来的内容全部拷贝至项目根目录,拷贝完效果如下.

3.设置项目的编码为utf-8

右键点击项目,修改项目属性

4.设置源码路径

5.将generator/lib的jars加入classpath

点击"Addjars"按钮将生成器依赖的jar包需要加入classpath

注:

如果使用Eclipse,需要将web/WEB-INF/lib下jars和Tomcat的servlet-api.jar加入。

6.安装插件hibernate及struts2

项目为插件结构,web框架及dao层需要安装(可以安装不同的web框架或是dao层)

打开plugins/build.xml,并打开eclipse的Outline视图

现运行install_dao_hibernate及install_web_struts2任务,请注意安装顺序

7.在mysql数据库中创建表user_info

在test数据库创建表,运行如下sql

CREATETABLEuser_info( 

 user_idbigint PRIMARYKEYAUTO_INCREMENT, 

 usernamevarchar(50)notnull, 

 passwordvarchar(50), 

 birth_datedate, 

 sexint, 

 ageint  

)ENGINE=InnoDBDEFAULTCHARSET=utf8;

注:

需要自行将数据库中插入相应的数据。

8.修改生成器配置文件generator.xml的jdbc数据库连接信息其它属性暂不修改

root 

123456 

jdbc:

mysql:

//localhost:

3306/test?

useUnicode=true&characterEncoding=UTF-8 

com.mysql.jdbc.Driver 

9.运行代码生成器GeneratorMain.java

以application的方式运行cn.org.rapid_framework.generator.GeneratorMain,直接修改源码,在便生成不同的表.

10.拷贝生成的代码至项目根目录,并刷新项目

生成器生成的文件默认会输出在d:

/webapp-generator-output

注:

缺省Hibernate生成代码为注解方式,可以手工选择other目录下生成的XML方式代码进行替换。

11.修改java_src/spring/applicationContext-datasource.xml的数据库连接信息

该配置是应用需要连接的数据库,与生成器的数据库连接是分开配置的,与第8步的数据库连接配置相同即可

 

     

    

mysql:

//localhost:

3306/test?

useUnicode=true&characterEncoding=UTF-8"/> 

     

     

注:

如果生成代码缺省包不是以com开头,需要修改spring下相关的XML文件。

12.部署应用struts2_demo至tomcat

13.启动tomcat,访问URL:

http:

//localhost:

8080/struts2_demo/pages/UserInfo/list.do

∙核心理念

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

∙特性

∙生成器的运行

o在eclipse中运行

o独立版运行

∙生成器讲解

o生成器模板路径可以引用相关变量

o自动搜索某个目录所有模板文件,无需配置

o代码生成器模板可以引用的相关变量

o每个模板有gg变量可以控制自身的自定义配置(每一个模板都会创建新的gg实例)

o支持生成(gen)及删除操作(del),即生成的代码也可以很方便的删除

o自动拷贝二进制文件至输出目录

o自动删除模板扩展名:

.ftl,.vm

o模板自动include同级目录:

macro.include文件

ogenerator.xml(或者generator.properties)配置文件

o十.数据库表配置,用于自定义生成器模板引用的table变量

o生成的代码插入文档的某个部位

∙创建一个模板

o代码template目录结构

o创建一个生成器模板文件

∙生成器参数配置

∙生成器核心类图

∙重复生成代码

∙参考

ogenerateByTable()

ogenerateBySql()

ogenerateByClass()

oGG控制变量参考

otable变量参考

ocolumn变量参考]

osql变量参考

o模板引擎freemarker

核心理念

为你生成一切,再根据所需手工copy回工作区

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

∙二次开发困难,没有源码可以修改模板文件的model对象等

∙过于智能,自动插入我们的项目中,程序员还需考虑旧的代码会不会被覆盖的问题

∙生成文件的时候让你选要生成那些文件,而rapid只负责生成代码,这样生成器核心一分精简

∙没有将存放模板的目录名称及文件名称利用起来,导致还需配置每个模板文件生成的文件名,目录结构

∙具体请查看我写的文章:

为何代码生成器都要这么智能呢?

特性

∙基于FreeMarker模板语言,并且模板易于修改

∙基于数据库,内建好数据库的model,并支持多种数据库(mysql,sqlserver,oracle测试通过)

∙半手工方式,生成的代码放在某个目录,再手工拷贝回来工作区

∙易于做二次开发,整个生成器本身就是java源代码,源代码核心十分精简,并且鼓励你修改代码,也可以作为任何语言的代码生成器

∙配置简单,只有一个配置文件generator.properties

生成器的运行

在eclipse中运行

1.配置classpath,将generator/lib中的rapid-generator.jar及其它数据库驱动加入classpath

2.修改generator.xml的数据库连接属性及其它属性

3.以application的方式运行GeneratorMain类,要生成不同的table,直接修改代码即可

publicclassGeneratoMain{ 

  publicstaticvoidmain(String[]args)throwsException{ 

    GeneratorFacadeg=newGeneratorFacade(); 

     

    g.deleteOutRootDir(); //删除生成器的输出目录 

//       g.generateByTable("table_name","template");  //通过数据库表生成文件,template为模板的根目录 

    g.generateByAllTable("template");   //自动搜索数据库中的所有表并生成文件,template为模板的根目录 

//       g.generateByClass(Blog.class,"template_clazz"); 

     

//       g.deleteByTable("table_name","template");//删除生成的文件 

  } 

}

4.以application方式运行cn.org.rapid_framework.generator.ext.CommandLine

独立版运行

下载standandalone-rapid-generator.zip,解压并运行rapid-gen.bat

独立版下载地址

生成器讲解

生成器模板路径可以引用相关变量

示例:

dao/${basepackage_dir}/${className}.java,根据该变量生成输出文件

如果basepackage_dir=com/company/rapid,className=UserInfo

那么完整路径则为:

dao/com/company/rapid/UserInfo.java

自动搜索某个目录所有模板文件,无需配置

代码生成器模板可以引用的相关变量

    1.g.generateByTable("table_name")方法可以引用的变量 

        table:

cn.org.rapid_framework.generator.provider.db.table.model.Table 

     

    2.g.generateByClass("class")方法可以引用的变量 

        clazz:

cn.org.rapid_framework.generator.provider.java.model.JavaClass 

 

    3.g.generateBySql(Sql)方法可以引用的变量 

        sql:

cn.org.rapid_framework.generator.provider.db.sql.model.Sql 

     

    4.公共变量 

        env:

系统环境变量 

        System.getProperties():

 直接引用,没有前缀 

        generator.properties文件中的所有属性,直接引用,没有前缀 

        gg:

模板控制变量,cn.org.rapid_framework.generator.GeneratorControl

每个模板有gg变量可以控制自身的自定义配置(每一个模板都会创建新的gg实例)

如是否生成,是否覆盖目标文件,甚至是生成其它文件示例:

${gg.setIgnoreOutput(true)},参考:

rapid_generator_gg

支持生成(gen)及删除操作(del),即生成的代码也可以很方便的删除

自动拷贝二进制文件至输出目录

如模板目录下的zip,rar,doc文件将会自动拷贝至输出目录,不会破坏文件格式(通过扩展名自动识别)

自动删除模板扩展名:

.ftl,.vm

举例:

如你有一个模板SqlMap.xml.ftl将变为SqlMap.xml所以你要生成ftl扩展名的文件,应该将文件名从list.ftl=>list.ftl.ftl

模板自动include同级目录:

macro.include文件

示例:

如你的模板为java_src/com/project/UserDao.java,将自动include:

java_src/com/project/macro.include及根目录的macro.include

generator.xml(或者generator.properties)配置文件

1.类似ant可以变量引用,引用环境变量使用${env.JAVA_HOME},引用System.getProperties()直接引用

2.自动替换generator.properties中的句号(.)为反斜杠,设置key为key+"dir"后缀

示例:

pkg=pany=>pkg_dir=com/company

十.数据库表配置,用于自定义生成器模板引用的table变量

配置文件必须存放在classpath:

generator_config/table/table_name.xml(该文件生成器可以生成,自己再自定义修改)

    

-- 

     

        

        javaType="自定义javaType" 

        unique="是否唯一性约束"nullable="是否可以为空"pk="是否主键,在表没有主键的情况下,可以指定一个代理主键" 

        updatable="是否可以更新"insertable="是否插入"   

        enumString="枚举值,以分号分隔,示例值:

M(1,男);F(0,女)或者是:

M(男);F(女)" 

        enumClassName="如果枚举有值,生成的类名称将是这个,没有枚举值,该配置无用.示例值:

Sex" 

        /> 

     

     --> 

     

        

            javaType="String" 

            unique="false"nullable="true"pk="false" 

            updatable="true"insertable="true" 

            enumString="F(1,Female);M(0,Male)"enumClassName="用户枚举" 

        /> 

        

            javaType="String" 

            unique="false"nullable="true"pk="false" 

            updatable="true"insertable="true" 

            enumString=""enumClassName="PasswordEnum" 

        /> 

    

生成的代码插入文档的某个部位

如模板输出生成的地方已经有该同名的文件存在,并且该文件中有包含"generator-insert-location"标记,则模板生成的内容会插入在该标记之后.该特性对如生成的spring配置内容插入spring配置文件十分有用

创建一个模板

代码template目录结构

如上所示,目录及文件名称可以引用相关变量。

创建一个生成器模板文件

在temppate目录创建一个文件,如${className}SpringControler.java则代码生成器会自动将该模板文件加载并生成该文件

充分利用各种文件的注释如在.xml中我们可以使用

--generator-insert-location-->在.properties文件中我们可以使用#generator-insert-location具体请查看template/insert_demo目录的内容

生成器参数配置

通过设置GeneratorProperties.setProperty(key,value)设置相关参数值.完整的配置参数请查看:

生成器核心类图

∙Generator为生成器引擎

∙GeneratorFacade为生成器入口调用类

∙GeneratorProperties生成器的相关配置,用于读取generator.properties(或者是generator.xml)

∙TableFactory用于创建Table.java对象,用于GeneratorFacade.generateByTable()使用

∙SqlFactory用于创建Sql.java对象,用于GeneratorFacade.generateBySql()使用

∙JavaClass模板变量,用于GeneratorFacade.generateByClass()使用

重复生成代码

现rapid自带的模板都不支持重复生成代码的,如果你需要重复生成代码,可以采用继承机制技巧重复生成。

Java代码的重复生成,善用"继承机制",示例如下:

UserInfoBaseDao:

自动生成的代码,不能手工修改,用于重复生成 

UserInfoDaoextendsUserInfoBaseDao:

存放手工的代码,不能重复生成

页面的重复生成还没有啥好办法。

参考

generateByTable()

通过表(或视图)查询生成代码

generateBySql()

通过sql语句生成代码

generateByClass()

通过javaclass生成代码

GG控制变量参考

gg控制变量

table变量参考

Table.java请使用IE查看table模板变量参考

column变量参考]

Column.java请使用IE查看

sql变量参考

Sql.java请使用IE查看

模板引擎freemarker

语法参考:

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2