



免费预览已结束,剩余1页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、什么是codgen?Codgen是一个基于数据库元数据模型,使用freemarker模板引擎来构建输出的代码生成器。freemarker的数据模型结构通常来说都是一个Map树状结构模型,codgen也不例外,它的数据模型这棵树的根节点一般包含一个TableModel(表数据模型)对象。TableModel顾名思义就是由一张数据库表的元数据信息组成的一个数据模型,有了这个数据模型,再加上一套使用freemarker编写的多层架构模板,就可以生成一套基于这个表的多层架构代码文件。 1.1 codgen的数据模型虽然说codgen通常需要包含一个TableModel来生成基于某张数据库表的一系列代码文件,但是可以动态去修改这些数据模型的内容,包括增加、替换和移除这棵数据模型树的任一个节点。简而言之,只要保证被解析的模板引用到的那些数据模型存在即可。 1.2 codgen的模板codgen的模板支持两种格式,一种是text(文本格式);另一种是file(文件格式)。 1.3 codgen的输出Codgen的输出和模板一样,也支持两种输出格式,一种是text(文本格式);另一种是file(文件格式)。 2、如何使用codgen2.1 下载最新的codgen.jar及其依赖包由于codgen不是一个独立的项目,本着不重新发明轮子的原则,依赖于一些比较流行的开源框架。因此除了需要下载最新的codgen.jar包文件以外,还要下载以下jar文件: commons-lang.jar 或以上兼容版本 commons-logging.jar或以上兼容版本 log4j-1.2.14或以上兼容版本 freemarker-2.3.13或以上兼容版本 除了以上4个必须依赖的开源包以外,由于codgen的TableModel元数据是通过JDBC来获取的,还需要下载对应数据库方言的JDBC驱动包,比如SQLServer2005的JDBC驱动包是sqljdbc.jar。目前codgen默认只支持Oracle10gSQLServer2000SQLServer2005三种数据库版本。但是可以通过扩展实现codgen提供的DbProvider接口来支持更多的数据库版本。 Oracle10g的JDBC驱动包:ojdbc14.jar SQLServer2000的JDBC驱动包:msbase.jar、mssqlserver.jar和msutil.jar SQLServer2005的JDBC驱动包:sqljdbc.jar 2.2 编写codgen配置文件虽然不使用配置文件的方式也可以实现整个代码的构建操作,但是为了减少使用代码的编写量及方便日后维护,建议使用配置文件来声明构建所依赖的一些信息,譬如数据模型变量声明,输出模型变量声明,以及数据库信息提供者等一些可以与代码分离的配置信息。以下就是一段比较完整的配置文件: com.microsoft.sqlserver.jdbc.SQLServerDriver jdbc:sqlserver:/SQL2005;DatabaseName=MUCM_DG;selectMethod=cursor sa sa template/AOWork D:/QtoneProject/TengenCode/$copyright.author/$projectName com.qtone.aow.model.$groupName com.qtone.aow.model.$groupName com.qtone.aow.dao.$groupName com.qtone.aow.dao.$groupName com.qtone.aow.bll.$groupName com.qtone.aow.bll.$groupName com.qtone.aow.app.$groupName dao.ftl $outputDirectory/Bll.java $outputDirectory/BllImpl.java 2.3 编写客户端调用代码2.3.1 Web环境下使用示例(以struts为例) private ActionForward generate(ActionMapping mapping, GenerateForm generateForm, HttpServletRequest request, HttpServletResponse response) BuildModel buildModel = generateForm.getBuildModel(); /取得指定项目名称的配置信息 ProjectConfig projectConfig = ProjectConfigHelper .getProjectConfig(this.getServlet().getServletContext() , buildModel.getProjectName(); /实例化一个项目构建配置对象 ProjectBuildConfig buildConfig = new ProjectBuildConfig(projectConfig); /设置数据库表名称(Sys_UserInfo) buildConfig.setTableName(buildModel.getTableName(); /设置表标签(如:用户信息) buildConfig.setTableLabel(buildModel.getTableLabel(); /设置分组名称(通常为表 名称的前缀,如:Sys) buildConfig.setGroupName(buildModel.getGroupName(); /设置模块名称(如:UserInfo) buildConfig.setModuleName(buildModel.getModuleName(); /设置版本的创建人 buildConfig.getCopyright().setAuthor(buildModel.getAuthor(); /由一个构建配置对象实例化一个代码生成器对象 Builder builder = new CodeBuilder(buildConfig); builder.build(); /执行构建操作 return mapping.findForward(INPUT_FORWARD); 在web环境下,codgen是这样去寻找配置文件来加载的:如果web.xml配置了名称为“codgen.config”的上下文初始化参数(相对于WEB-INF目录下的文件路径,多个文件名以英文逗号分隔);如果未配置该参数,则默认读取类路径根目录下的codgen-config.xml,所以在这种情况下请确保src目录下存在codgen-config.xml文件。 2.3.2 非web环境下使用示例 public static void main(String args) /取得默认的项目配置信息,在非web环境下调用传递参数null即可,但配置文件必须是src目录下的codgen-config.xml ProjectConfig projectConfig = ProjectConfigHelper.getDefaultProjectConfig(null); ProjectBuildConfig buildConfig = new ProjectBuildConfig(projectConfig); buildConfig.setTableName(Sys_UserInfo); /buildConfig.setTableLabel(用户信息); /不设置默认为表注释,表注释为空时则使用表名称 /buildConfig.setGroupName(System); /不设置默认为Sys /buildConfig.setModuleName(UserInfo); /不设置默认为UserInfo /buildConfig.getCopyright().setAuthor(黄天政); /不设置默认为
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年中国抗菌产品行业市场全景分析及前景机遇研判报告
- 智能网联汽车技术概论(含实训任务书)教案全套 第1-7章 概述、智能网联汽车技术原理-智能网联汽车软件系统
- 2025年中国睫毛延伸行业市场全景分析及前景机遇研判报告
- 2025年中国家用椭圆机行业市场全景分析及前景机遇研判报告
- 中国中药饮片行业发展趋势预测及投资规划研究报告
- 2023-2028年中国红木木材行业市场深度分析及未来发展趋势预测报告
- 2025年中国家用电烤箱市场供需现状及投资战略研究报告
- 2025年 西藏行测考试笔试试题附答案
- 锦纶行业深度研究分析报告(2024-2030版)
- 中国装修施工服务行业市场深度研究及投资战略规划报告
- 物业小饭桌管理制度
- 2025年湖南省普通高中学业水平考试合格性考试模拟试题(长郡版高一生物)(原卷版)
- 2025春国家开放大学《思想道德与法治》终考大作业答案
- 2025年广东省广州市白云区中考语文二模试卷
- 【英语(新高考Ⅰ卷)】2025年普通高等学校招生全国统一考试
- 2025年天津市河西区中考二模数学试题(含部分答案)
- 医院培训课件:《药品不良反应报告和监测工作简介》
- 广东省东莞市2025届九年级下学期中考三模语文试卷(含答案)
- 2025 届九年级初三毕业典礼校长讲话:星河长明共赴新程
- 高中英语必背3500单词表完整版
- GM/T 0009-2023SM2密码算法使用规范
评论
0/150
提交评论