`
itoracja
  • 浏览: 137634 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

自做代码生成器(二)规则格式定义

    博客分类:
  • java
阅读更多
       首先是数据表和java类之间的转换规则,数据库以oracle举例,我一般的命名方式是这样,表的名字是 表前缀_表含义 这种,比如手机杂志项目有个文章表,表的名字就叫做magazine_article,而类的名字就叫做magazinearticle,字段也是一样,比如有个字段叫做article_title,相应的变量名就是articletitle。当然这些规则以后是可以手动修改的。    接着就是考虑生成代码需要获取的信息,这些信息当然是最好保存在配置文件里,比如可以定义如下xml文件:
<div class='codearea xml'><div style='color: #000000;'><br/><font color='#0000ff'><</font>?<font color='#a52a2a'>xml</font> <font color='#ff0000'>version</font>=<font color='#000000'>"1.0"</font> <font color='#ff0000'>encoding</font>=<font color='#000000'>"gb2312"</font>?<font color='#0000ff'>></font><br/><font color='#0000ff'><</font><font color='#a52a2a'>auto</font>-<font color='#a52a2a'>coder</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"代码生成器配置文件"</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>file</font>-<font color='#a52a2a'>path</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"生成代码保存的路径"</font><font color='#0000ff'>></font><font color='#a52a2a'>gen</font><font color='#0000ff'></</font><font color='#a52a2a'>file</font>-<font color='#a52a2a'>path</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>database</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"数据库配置"</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>driver</font><font color='#0000ff'>></font><font color='#a52a2a'>oracle</font>.<font color='#a52a2a'>jdbc</font>.<font color='#a52a2a'>driver</font>.<font color='#a52a2a'>oracledriver</font><font color='#0000ff'></</font><font color='#a52a2a'>driver</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>url</font><font color='#0000ff'>></font><font color='#a52a2a'>jdbc</font>:<font color='#a52a2a'>oracle</font>:<font color='#a52a2a'>thin</font>:@<font color='#a52a2a'>192</font>.<font color='#a52a2a'>168</font>.<font color='#a52a2a'>0</font>.<font color='#a52a2a'>186</font>:<font color='#a52a2a'>1521</font>:<font color='#a52a2a'>testdb</font><font color='#0000ff'></</font><font color='#a52a2a'>url</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>username</font><font color='#0000ff'>></font><font color='#a52a2a'>wap</font><font color='#0000ff'></</font><font color='#a52a2a'>username</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>password</font><font color='#0000ff'>></font><font color='#a52a2a'>a123</font><font color='#0000ff'></</font><font color='#a52a2a'>password</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>dbflag</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"是否从数据库读取"</font><font color='#0000ff'>></font><font color='#a52a2a'>false</font><font color='#0000ff'></</font><font color='#a52a2a'>dbflag</font><font color='#0000ff'>></font><br/> <font color='#0000ff'></</font><font color='#a52a2a'>database</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>templates</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"单个数据表模板"</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><font color='#a52a2a'>java</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><font color='#a52a2a'>dao</font>.<font color='#a52a2a'>vm</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><font color='#a52a2a'>classnamedao</font>.<font color='#a52a2a'>xml</font><font color='#0000ff'></</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'></</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font><br/> <font color='#0000ff'></</font><font color='#a52a2a'>templates</font><font color='#0000ff'>></font> <br/><br/> <font color='#0000ff'><</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>templates</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"多个数据表模板"</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'><</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><font color='#a52a2a'>other</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>type</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><font color='#a52a2a'>create</font>.<font color='#a52a2a'>vm</font><font color='#0000ff'></</font><font color='#a52a2a'>template</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></</font><font color='#a52a2a'>java</font>-<font color='#a52a2a'>package</font><font color='#0000ff'>></font><br/>   <font color='#0000ff'><</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><font color='#a52a2a'>create</font>.<font color='#a52a2a'>sql</font><font color='#0000ff'></</font><font color='#a52a2a'>class</font>-<font color='#a52a2a'>name</font><font color='#0000ff'>></font><br/>  <font color='#0000ff'></</font><font color='#a52a2a'>template</font><font color='#0000ff'>></font> <br/> <font color='#0000ff'></</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>templates</font><font color='#0000ff'>></font><br/> <font color='#0000ff'><</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>file</font> <font color='#a52a2a'>comment</font>=<font color='#000000'>"要生成的数据表文件"</font><font color='#0000ff'>></font><font color='#a52a2a'>tables</font>.<font color='#a52a2a'>txt</font><font color='#0000ff'></</font><font color='#a52a2a'>table</font>-<font color='#a52a2a'>file</font><font color='#0000ff'>></font><br/><font color='#0000ff'></</font><font color='#a52a2a'>auto</font>-<font color='#a52a2a'>coder</font><font color='#0000ff'>></font>
0
0
分享到:
评论

相关推荐

    实验五_用语法制导方式生成中间代码生成器参照.pdf

    知识点二:中间代码生成器 中间代码生成器是指在编译器设计中,生成中间代码序列的过程。中间代码序列是指将源程序翻译成的中间形式,中间代码序列可以是三地址码形式、 bytecode形式等。中间代码生成器的目的是将...

    代码生成器

    编辑功能,会根据字段类型,验证规则生成不同的编辑模式,比如日期类型用datebox,数字类型就用numberbox,必填的验证可以实现 查询功能,会根据字段类型的不同生成不同的控件方便操作,datebox,combox Excel导入...

    TOPTP v1.0纯净版(for ThinkPHP2.1RC1)-ThinkPHP代码生成器

    TOPTP代码生成器的出现将给我们带来哪些方便? 大家也许都有同感。 ThinkPHP目录层次太多。 配置一个分组后,要在lib/Action下建立分组文件夹,又要在Tpl/default下建立分组文件夹。每建立一个模块 (Action文件)...

    实验五_用语法制导方式生成中间代码生成器[收集].pdf

    本实验的目的是掌握语法制导定义和翻译的原理和技术,在语法分析器的基础上,加上语义分析,构造一个中间代码生成器。实验内容包括在实验四生成的语法分析器基础上加入语义动作,将源程序翻译为对应的中间代码序列。...

    dotnetcoding ORM 代码生成器

    最终开发人员一般只需要在业务规则层扩展相关业务规则的编码,对自动生成的界面进行少量的调整,在UI界面工程里添加少量的控制代码. 采用此开发平台,能够复用成熟的开发架构,自动生成所有非商业有关的代码,在公司...

    .net ORM 代码生成器 v1.1

    将一个解决方案分解为6个Project,分别是通用类库, 通用控件库,数据访问工程,业务规则工程,项目专用控件工程,UI界面工程,整个方案根据已经设计好的数据库自动生成,在生成的过程种可以灵活的定义生成参数 ...

    编译原理三地址代码生成C++实现

    这是一个关于C语言的一个编译器设计的一部分,生成了三地址中间代码,C++实现。应该是不错的,您下了不后悔。

    实体生成器:带有GUI的Laravel代码生成器

    生成字段验证规则 例 创建迁移 添加验证规则 将数据库架构转换为Laravel迁移 自动将文档添加到Model 在线部署PHP代码 仅在local环境中可用! 下载 将其解压缩到您的Laravel项目的公共文件夹中 访问 安装PHP 点击...

    如何编出健壮的代码,java编程30条规则

    规则 14: 当客户程序员用完对象以后,若你的类要求进行任何清除工作,可考虑将清除代码置于一个良好定义的方法里,采用类似于 cleanup()这样的名字,明确表明自己的用途。这条规则对对象的生命周期进行了规定,帮助...

    Java编写的一个类C语言编译器(词法分析,语法分析,语义分析和目标代码生成).zip

    - 实现目标代码生成器,将中间代码或AST转换为可执行代码。 - 生成目标代码。 **技术要求**: - 熟悉Java编程语言。 - 了解编译原理中的词法分析、语法分析、语义分析和目标代码生成概念。 - 熟悉自动机理论、形式...

    Java代码生成器 — IDEA插件Easy Code

    |- 基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml); |-只要是与数据库相关的代码都可以通过自定义模板来生成;支持数据库类型与java类型映射关系配置; |-支持同时生成生成多...

    词法分析器生成器flex中文手册.doc

    词法分析器生成器Flex是一种基于正规表达式的词法分析器生成器,能够根据用户定义的规则生成扫描器。该手册为Flex的中文手册,旨在帮助用户快速了解Flex的使用方法和基本概念。 在Flex中,输入文件被分为三个部分,...

    gengo:gengo库,用于代码生成

    发电机/ 程序包生成器定义了供代码生成器实现的接口以及将执行这些代码生成器的机器。类型/ 包类型包含类型系统定义。 它是按照Go的类型系统建模的,但是如果您要编写解析器/转换器,则可以通过解析其他内容来生成...

    华中科技大学 编译原理 面向过程的C语言的编译器设计 含有词法分析和语法分析、语义分析、中间代码生成的 源码.zip

    华中科技大学 编译原理 面向过程的C语言的编译器设计 功能包括:词法分析和语法分析、语义分析、中间代码生成的 源码 题目:c--语言编译器设计与实现(请为自己的编译器命名) 源语言定义:或采用教材中Decaf语言,...

    EasyCode是基于IntelliJ IDEA开发的代码生成插件

    EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与java类型映射关系配置。支持同时生成生成多...

    基于IntelliJ IDEA Ultimate版开发的一个代码生成插件,主要通过自定义模板来生成各种你想要的代码

    EasyCode是基于IntelliJ IDEA开发的代码生成插件,支持自定义任意模板(Java,html,js,xml)。只要是与数据库相关的代码都可以通过自定义模板来生成。支持数据库类型与java类型映射关系配置。支持同时生成生成多...

    Python程序设计:函数定义与调用.pptx

    我们将从本任务出发,较为系统的学习Python中函数的定义、调用、函数的形参定义、函数的参数传递以及匿名函数和生成器函数等内容,并掌握相关的配套案例。 任务 IQ智商测试 任务知识点 函数定义与调用 函数参数 匿名...

    C语言编译器的Lex及Yacc词法及语法分析规则源码

    C语言编译器的实现还包括代码生成、优化等阶段。 五、Lex词法分析器的实现 Lex词法分析器的实现包括词法分析器的设计和实现。词法分析器的设计包括词法分析器的语法规则、词法分析器的实现细节等。词法分析器的...

    基于Python的DbFaker数据生成器源码

    项目名称:DbFaker - 基于Python的数据生成器 项目简介: DbFaker是一个基于Python开发的数据生成工具,旨在数据库层面批量生成具有逻辑关联的仿真数据。该项目由纯Python代码编写,结合Shell脚本,提供了高效、...

    lex一个词法分析器的生成器_翻译版.pdf

    Lex - 一个词法分析器生成器 Lex 是一个词法分析器生成器,它用于生成识别正则表达式的通用语言写的一个程序。该工具接受高级的、面向问题的对字符串匹配的规定,并生成识别正则表达式的通用语言写的一个程序。正则...

Global site tag (gtag.js) - Google Analytics