`
CnXiaowei
  • 浏览: 49383 次
社区版块
存档分类
最新评论

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

阅读更多
   首先是数据表和java类之间的转换规则,数据库以oracle举例,我一般的命名方式是这样,表的名字是 表前缀_表含义 这种,比如手机杂志项目有个文章表,表的名字就叫做magazine_article,而类的名字就叫做MagazineArticle,字段也是一样,比如有个字段叫做article_title,相应的变量名就是articleTitle。当然这些规则以后是可以手动修改的。

    接着就是考虑生成代码需要获取的信息,这些信息当然是最好保存在配置文件里,比如可以定义如下xml文件:


<?xml version="1.0" encoding="GB2312"?>
<auto-coder comment="代码生成器配置文件">
 <file-path comment="生成代码保存的路径">gen</file-path>
 <database comment="数据库配置">
  <driver>oracle.jdbc.driver.OracleDriver</driver>
  <url>jdbc:oracle:thin:@192.168.0.186:1521:testdb</url>
  <username>wap</username>
  <password>a123</password>
  <dbflag comment="是否从数据库读取">false</dbflag>
 </database>
 <templates comment="单个数据表模板">
  <template>
   <template-type>java</template-type>
   <template-file>dao.vm</template-file>
   <java-package></java-package>
   <class-name>CLASSNAMEDAO.xml</class-name>
  </template>
 </templates>

 <table-templates comment="多个数据表模板">
  <template>
   <template-type>other</template-type>
   <template-file>create.vm</template-file>
   <java-package></java-package>
   <class-name>create.sql</class-name>
  </template> 
 </table-templates>
 <table-file comment="要生成的数据表文件">tables.txt</table-file>
</auto-coder>

    由于我们想要生成的不仅仅java代码,还可能是建表sql,配置文件等待,所以这里设定了两种模板,一种是一个数据表对应一个生成文件的模板,另外一种是所有数据表对应一个生成文件的模板。利用第一个模板,我们可以生成数据类、数据访问类等等代码,而利用第二个模板,可以生成建表语句、struts或者webwork的配置文件等等。

    数据库的属性里面有一项是“dbflag”,表示是否从数据库读取数据,这里默认,如果这项是true,则从数据库获取相应的字段信息,一般我用它来生成数据库结构对应的xml文件。如果这项是false,则从tables/xxx.xml文件中获取数据表的各种信息,我大多数是首先用读数据库的方式生成相应的数据库表结构的xml文件,接着修改生成的xml文件,比如加入注释等,然后再根据这些xml文件来生成代码和建表的sql语句。

    数据表的xml文件定义也是自己定义的,生成xml文件的模板是这样:


<?xml version="1.0" encoding="GB2312"?>
<table>
 <name>$table.TableName</name>
 <class-name>$table.TableClassName</class-name>
 <short-name>$table.TableShortName</short-name>
 <display>$table.TableClassName</display>
 <fields>
##各个字段
#set ($fields = $table.getTableFields())
#set ($pks = $table.getPrimaryKeys())
#foreach($field in $fields)
  <field>
   <label>$field.FieldClassName</label>
   <name>$field.FieldName</name>
   <class-name>$field.FieldClassName</class-name>
   <type>$field.FieldType</type>
   <class-type>$field.FieldClassType</class-type>
   <length>$field.FieldLen</length>
   <null>$field.FieldNull</null>
   <readonly>$field.ReadOnly</readonly>
   <form-type>text</form-type>
  </field>
#end
 </fields>
 <pks>
#foreach($pk in $pks)
  <pk>
   <name>$pk.FieldName</name>
  </pk>
#end
 </pks>
</table>

    其实完全可以利用hibernate的格式来定义表的结构,但相对来说难度稍微大了点,配置选项太多,所以只好简化很多东西,留下最基本的东西了。

    自己定义好了配置文件和表信息文件的格式,接下来的工作就是读取配置文件--->获取数据表信息---->根据配置模板生成代码。

 
分享到:
评论

相关推荐

    C#代码生成器

    1. 自动化代码编写:C#代码生成器能够根据预定义的模板或规则,自动生成诸如数据访问层、业务逻辑层、实体类等常见代码,减少手动编写的工作量。 2. 辅助类集成:C#代码生成器内建了多种辅助类,这些类通常包含通用...

    .net C#代码生成器

    C#代码生成器,正如其名,是专为C#编程语言设计的,其核心功能是将预定义的模板或规则转换为可直接使用的源代码。开发者可以根据自己的需求定制代码模板,比如数据库访问层(DAL)、业务逻辑层(BLL)以及表示层(UI...

    人人代码生成器贼好用啊

    人人代码生成器是一款高效实用的工具,主要用于自动化代码编写过程,极大地提高了开发人员的生产力。在软件开发领域,代码生成器扮演着至关重要的角色,它能够根据预设的模板或模型自动生成符合特定规范的源代码,...

    Asp.net动软代码自动生成器

    2. **代码生成**:代码生成器的核心功能是自动生成代码,它可以基于预定义的模板或用户定义的规则,自动创建常见的CRUD(创建、读取、更新、删除)操作或其他业务逻辑代码,减轻开发者的工作负担,使他们能够更专注...

    C#三层代码生成器

    "C#三层代码生成器"是一个工具,旨在帮助开发者快速生成C#项目的三层架构代码,减少手动编写代码的工作量,提高开发效率。三层架构是一种常见的软件设计模式,它将应用程序分为三个主要层次:表现层(UI)、业务逻辑...

    代码生成器代码生成器.zip

    代码生成器通过模板和规则引擎来自动化代码编写过程。它可以基于用户提供的输入(如数据库结构、接口定义或业务逻辑)生成相应的代码片段。这样,开发者可以专注于更高层次的设计和创新,而不是琐碎的语法细节。 2...

    SQL代码生成器_sql代码生成_sqlserver_

    SQL代码生成器是一种工具,它自动化了创建SQL脚本的过程,极大地提高了开发人员的效率。在SQL Server环境下,这样的工具尤为重要,因为SQL Server数据库的复杂性和规模常常需要编写大量复杂的查询和数据操作语句。本...

    C#代码生成器,C#代码生成器,C#代码生成器

    C#代码生成器是一种能够自动根据预设规则或模板生成C#代码的工具。它极大地提升了开发效率,减少了重复劳动,尤其在处理大量相似或者固定的代码结构时,其优势尤为明显。这款“C#代码生成器”是开发者自己编写的,...

    代码生成器,自动生成Mapper,Controller,service文件

    代码生成器,顾名思义,是一个程序或工具,它根据用户提供的配置或模板,自动生成符合特定规则的源代码。这类工具广泛应用于软件开发过程中,尤其在快速原型开发、框架搭建和复杂业务逻辑处理时,能够极大地减轻...

    .net代码生成器,C#代码

    .NET代码生成器是专为.NET框架设计的一种工具,它能根据预定义的模板或规则自动生成C#代码,适用于快速构建应用程序、数据库访问层、实体模型等多个层面。 C#,作为.NET框架的主要编程语言,具有现代、类型安全和...

    非常实用的代码生成器

    代码生成器的工作原理通常是基于某种规则(如XML配置、JSON配置或者图形化界面配置)来定义生成代码的结构和内容。这些规则可以包括变量名、数据类型、函数定义、类结构等。然后,生成器会根据这些规则,结合预设的...

    能自动生成底层代码的代码生成器

    代码生成器是一种强大的工具,它能够自动根据用户定义的规则或模型生成源代码,从而显著提高软件开发的效率。在IT行业中,特别是在大型项目或快速迭代的开发环境中,使用代码生成器是常见的最佳实践之一。 标题中的...

    javaweb代码生成器源码

    JavaWeb代码生成器是一种工具,它能够自动化地创建常见的JavaWeb项目结构,包括服务层(services)、模型层(model)、数据访问对象层(DAO)以及映射器(mapper)等组件。这种源码生成器极大地提高了开发效率,减少...

    .net代码生成器

    代码生成器通过分析模板或者元数据,根据预定义的规则和逻辑,自动产出符合业务需求的代码片段,大大减少了人工编写的时间和出错概率。 .NET代码生成器的工作原理主要包括两个主要步骤:解析和生成。解析阶段,工具...

    代码生成器,C#代码生成器

    【代码生成器与C#代码生成器】 代码生成器是一种工具,它能够自动化地创建代码,减少程序员手动编写重复性代码的工作量。在C# .NET环境中,代码生成器尤其受欢迎,因为它可以帮助开发者快速构建应用的基础结构,如...

    代码生成器源码

    代码生成器是一种软件开发工具,它能够自动生成符合特定编程语言规范的代码,极大地提高了开发效率,降低了出错的可能性。本资源提供的是一个代码生成器的源码,可以帮助开发者快速构建sql语句,并且易于理解和使用...

    代码生成器源代码

    代码生成器通过连接到数据库,获取这些元数据信息,然后根据预定义的模板或规则,生成与数据库表对应的实体类、数据访问层(DAO)、服务层和服务接口等代码。这样,开发者无需手动编写这些基础代码,可以更专注于...

    .NET代码生成器.NET代码生成器

    .NET代码生成器主要利用了.NET Framework的强大功能,包括反射、元数据和编译API等,来解析已有的类库或数据库模型,并根据预定义的规则生成相应的源代码。这不仅适用于简单的CRUD操作,还可以用于创建复杂的业务...

    DELPHI代码生成器CodeEngine

    总结来说,DELPHI代码生成器CodeEngine是提升DELPHI开发效率的有效工具,它通过模板和规则引擎实现了代码的自动化生成,减轻了开发者的工作负担,同时保持了代码的规范性和一致性。在实际开发中,合理利用CodeEngine...

    多语言自动代码生成器(autocoder)

    代码生成器是一种工具,它能够根据预定义的规范、模板或模型自动生成源代码。这种技术在软件工程中被广泛应用,以提高开发效率,减少人为错误,并加速迭代过程。多语言自动代码生成器,如“autocoder”,意味着它...

Global site tag (gtag.js) - Google Analytics