`
zhaoshg
  • 浏览: 259312 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ibator改进,生成中文注释

阅读更多

先修改ibator1.2.2(http://svn.apache.org/repos/asf/ibatis/java/ibator)

1) 修改org.apache.ibatis.ibator.api.Ibator类,

方法private void writeFile(File file, String content) throws IOException

修改编码如下:

private void writeFile(File file, String content) throws IOException {
       java.io.OutputStreamWriter fos = new java.io.OutputStreamWriter(new java.io.FileOutputStream(file), "UTF-8");
        fos.write(content);
        fos.flush();
        fos.close();
    }
 2)修改org.apache.ibatis.ibator.internal.DefaultCommentGenerator类中的addFieldComment,addClassComment,addGetterComment,addSetterComment,addGeneralMethodComment,addComment方法,修改成你想要的格式。

修改如下方法:

public void addClassComment(InnerClass innerClass,
            IntrospectedTable introspectedTable) {
        addClassComment(innerClass, introspectedTable.getFullyQualifiedTable(), false);
    }

    public void addEnumComment(InnerEnum innerEnum,
            IntrospectedTable introspectedTable) {
        addEnumComment(innerEnum, introspectedTable.getFullyQualifiedTable());
    }

    public void addFieldComment(Field field,
            IntrospectedTable introspectedTable,
            IntrospectedColumn introspectedColumn) {
        addFieldComment(field, introspectedTable.getFullyQualifiedTable(),
                introspectedColumn.getRemarks());
    }

    public void addFieldComment(Field field, IntrospectedTable introspectedTable) {
        addFieldComment(field, introspectedTable.getFullyQualifiedTable());
    }

    public void addGeneralMethodComment(Method method,
            IntrospectedTable introspectedTable) {
        addGeneralMethodComment(method, introspectedTable.getFullyQualifiedTable());
    }

    public void addGetterComment(Method method,
            IntrospectedTable introspectedTable,
            IntrospectedColumn introspectedColumn) {
        addGetterComment(method, introspectedTable.getFullyQualifiedTable(),
                introspectedColumn.getRemarks());
    }

    public void addSetterComment(Method method,
            IntrospectedTable introspectedTable,
            IntrospectedColumn introspectedColumn) {
        addSetterComment(method, introspectedTable.getFullyQualifiedTable(),
                introspectedColumn.getRemarks());
    }

    public void addClassComment(InnerClass innerClass,
            IntrospectedTable introspectedTable, boolean markAsDoNotDelete) {
        addClassComment(innerClass, introspectedTable.getFullyQualifiedTable(), markAsDoNotDelete);
    }

  主要是把

introspectedColumn.getActualColumnName()

 改成(利用数据库中的comment生成注释)

introspectedColumn.getRemarks()
 3)修改好,把生成的jar文件:"ibator-core-1.2.2-SNAPSHOT.jar",改名为"ibator.jar",在安装了ibator插件的Eclipse中,覆盖eclipse\plugins\org.apache.ibatis.ibator.core_1.2.1下的jar文件

4)测试:

   4.1) 数据库脚本:

create table
CREATE TABLE `brand` (
   `code` varchar(36) NOT NULL default '' COMMENT '代码',
   `logopath` varchar(80) default NULL COMMENT 'logo路径',
   `name` varchar(40) NOT NULL default '' COMMENT '名字',
   `visible` bit(1) NOT NULL COMMENT '是否可见',
   PRIMARY KEY  (`code`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8

create table
CREATE TABLE `employee` (
   `username` varchar(20) NOT NULL default '' COMMENT '用户名',
   `degree` varchar(10) default NULL COMMENT '等级',
   `email` varchar(50) default NULL COMMENT '电子邮箱',
   `gender` varchar(5) NOT NULL default '' COMMENT '性别',
   `imageName` varchar(41) default NULL COMMENT '图片名字',
   `password` varchar(20) NOT NULL default '' COMMENT '密码',
   `phone` varchar(20) default NULL COMMENT '电话',
   `realname` varchar(10) NOT NULL default '' COMMENT '真实姓名',
   `school` varchar(20) default NULL COMMENT '学校',
   `visible` bit(1) NOT NULL COMMENT '是否可见',
   `department_id` int(11) default NULL COMMENT '部门ID',
   `card_id` int(11) NOT NULL COMMENT '身份证',
   PRIMARY KEY  (`username`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

 4.2)ibatorConfig.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ibatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Apache iBATIS Ibator Configuration 1.0//EN" "http://ibatis.apache.org/dtd/ibator-config_1_0.dtd" >
<ibatorConfiguration>

	<classPathEntry
		location="D:/Eclipse/workspace/helios-3.6/test/lib/mysql_connector_java_5.jar" />
	<ibatorContext id="context1" targetRuntime="Ibatis2Java5">

		<commentGenerator>
			<property name="suppressDate" value="true" />
		</commentGenerator>

		<jdbcConnection driverClass="com.mysql.jdbc.Driver"
			connectionURL="jdbc:mysql://127.0.0.1:3306/test" userId="root"
			password="root">
		</jdbcConnection>
		<javaModelGenerator targetPackage="cn.zlj.ibatis.entity"
			targetProject="test" />
		<sqlMapGenerator targetPackage="cn.zlj.ibatis.sqlmap"
			targetProject="test" />
		<daoGenerator targetPackage="cn.zlj.ibatis.dao"
			targetProject="test" implementationPackage="cn.zlj.ibatis.dao.impl"
			type="spring" />

		<table tableName="brand">
		</table>
		<table tableName="employee">
		</table>
	</ibatorContext>
</ibatorConfiguration>

 4.3)ibator生成文件: 略 

 

OK,修改完成,去掉了很多原来自动生成的注释。

 

可以自己写实现org.apache.ibatis.ibator.api.CommentGenerato

或者重写org.apache.ibatis.ibator.internal.DefaultCommentGenerator这个类的

 

public void addClassComment(InnerClass innerClass,
            IntrospectedTable introspectedTable) 

    public void addEnumComment(InnerEnum innerEnum,
            IntrospectedTable introspectedTable) 

    public void addFieldComment(Field field,
            IntrospectedTable introspectedTable,
            IntrospectedColumn introspectedColumn) 

    public void addFieldComment(Field field, IntrospectedTable introspectedTable);

    public void addGeneralMethodComment(Method method,
            IntrospectedTable introspectedTable) ;

    public void addGetterComment(Method method,
            IntrospectedTable introspectedTable,
            IntrospectedColumn introspectedColumn) ;

    public void addSetterComment(Method method,
            IntrospectedTable introspectedTable,
            IntrospectedColumn introspectedColumn) ;

    public void addClassComment(InnerClass innerClass,
            IntrospectedTable introspectedTable, boolean markAsDoNotDelete) ;
 ibator1.2.2与以前的版本的主要改变就是以上这几个方法,原来的这种

addFieldComment(Field field, FullyQualifiedTable table, String columnName)方法,

在下一版本中就会被去掉了。

/**
     * Method from the old version of the interface.
     * 
     * TODO - remove in release 1.2.3
     * 
     * @deprecated as of version 1.2.2.
     * @see DefaultCommentGenerator#addFieldComment(Field, IntrospectedTable, IntrospectedColumn)
     */
    public void addFieldComment(Field field, FullyQualifiedTable table, String columnName) {
。。。。。
}
 

 

分享到:
评论

相关推荐

    IBATOR动态生成sql和DAO层

    【IBATOR动态生成SQL和DAO层】是一种高效开发工具,基于Apache的iBatis框架,旨在简化数据库操作的代码编写工作。iBatis是Java语言中的一个持久层框架,它允许开发者将SQL语句直接嵌入到Java代码中,提供灵活的数据...

    ibator1.2.2无注释

    ibator1.2.2多了点功能,具体可以百度,重新编译了下,生成注释去掉了

    ibatis:使用ibator自动生成代码和配置文件

    "ibatis:使用ibator自动生成代码和配置文件"这个主题聚焦于一个实用的工具——ibator,它是MyBatis框架的一个扩展,用于自动化MyBatis的代码生成过程。这篇文章将深入探讨ibator的工作原理、如何安装和配置,以及它...

    ibator优化版,使用数据库的注释

    使用数据库的注释,不用自带的注释 http://blog.csdn.net/tiantangpw/article/details/43489817 运行命令 java -jar ibator.jar -configfile ibatorConfig.xml -overwrite &gt;&gt;ibator.log

    ibatis自动生成工具ibator,改进版

    开源ibator什么xml和pojo的时候,经常会带一些讨厌的注释还有一些没用的ibatorgenerator等的,我改了它的源代码,弄了个干净的ibator

    ibator1.2.1

    Ibator 1.2.1是其一个稳定版本,包含了多项改进和优化,使得代码生成更加智能化,更易于集成到项目中。 二、Ibator 1.2.1主要功能 1. 数据库表扫描:Ibator可以自动扫描数据库中的表,根据表结构生成相应的Java...

    ibatis自动生成工具ibator及配置文件示例

    标题 "ibatis自动生成工具ibator及配置文件示例" 提到的是关于iBatis的自动化工具ibator的使用和配置。iBatis是一个优秀的Java持久层框架,它允许开发者将SQL语句直接写在XML配置文件中,使得数据库操作与业务逻辑...

    ibator1.2.1配置文件

    Ibator是iBATIS(现在已经演变为MyBatis)的一个扩展,它能够根据数据库表结构自动生成Java源代码,包括DTO(Data Transfer Objects)、DAO(Data Access Object)类以及对应的XML映射文件,大大减少了手动编写这些...

    为 Ibatis 2.3.4 构建增强的 Apache Ibator 实体类生成工具

    Ibator is a code generator for iBATIS. Ibator will introspect a database table (or many tables) and will generate iBATIS artifacts that can be used to access the table(s). This abates some of the ...

    ibator使用指导

    ibatorConfig.xml的注释提供了详细的配置选项说明,包括数据库连接信息、生成代码的包结构、生成的类是否包含Javadoc等。通过灵活调整这些配置,开发者可以定制化Ibator生成的代码样式和结构,使其更符合项目规范。 ...

    Ibator参考程序

    Ibator,全称“Introspected Table Abstraction”,是Apache MyBatis框架的一个子项目,它提供了一个代码生成器,能够自动生成JavaBean、Mapper接口和XML配置文件,大大减少了开发者手动编写这些重复代码的工作量。...

    eclipse集成的ibator插件

    Ibator支持多种自定义配置,例如可以设置生成的Java类的包名、是否生成注释、字段命名规则等。这些配置使得生成的代码更符合项目规范,避免手动修改大量代码。此外,Ibator还支持逆向工程,即根据已有的Java类和...

    iBATOR-V1.1.0

    iBATOR,全称为"IBATIS Auto Table Access Toolkit Generator",是针对iBATIS数据库持久层框架的一个代码生成工具。它的主要功能是自动生成与数据库表相关的Java代码,包括实体类、Mapper接口和XML配置文件,极大地...

    ibator的eclipse插件

    - **设置生成策略**:定义生成的Java类和XML配置文件的命名规则、是否生成注释、字段映射等。 - **生成代码**:确认设置无误后,点击“Finish”生成代码。 生成的代码通常包括: - **实体类(Entity Class)**:...

    ibator使用心得

    此外,如果你不希望ibator生成的代码包含过多的注释,可以修改`DefaultCommentGenerator`类来去掉这些注释。这通常需要下载源码,修改后再重新打包成jar文件,替换Eclipse中的原版ibator插件。 总的来说,ibator是...

    ibator 1.2.1

    - `ReleaseNotes.txt`:记录了ibator 1.2.1版本的更新内容和改进点。 - `releasing.txt`:可能包含了关于如何发布或打包ibator的指南。 - `README.txt`:通常会提供关于如何安装和使用ibator的基本信息。 - `todo....

    ibator-eclipse插件1.2.1 包含优化后jar包

    "修改后jar"文件可能是指经过优化的Ibator核心库,这些库文件可能已经过修改,以支持插件的新特性或改进。 总的来说,Ibator-Eclipse插件1.2.1版是开发者提高工作效率、简化数据库操作的得力助手。它通过消除不必要...

    删除注释工具类

    Ibator自动生成的代码通常包含有详细的模板注释,这些注释提供了关于如何配置和使用生成的类的信息。然而,随着项目的进展,这些初始注释可能会变得过时或者冗余,这时就需要一个工具来批量删除或更新它们。 "删除...

    IBator的安装使用

    IBator是Apache iBATIS项目的一个子项目,它是一个代码生成器,能够帮助开发人员自动化创建基于iBATIS的持久层代码,包括Java模型类、SQL映射文件以及DAO接口。通过减少手动编写这些常见的重复性工作,IBator可以...

    ibator插件+ibatorConfig文件

    5. **全局配置**:包括生成代码的编码格式、日期时间类型处理、是否生成注释等全局性设置。 6. **插件配置**:可以添加自定义的插件,例如逻辑删除插件,来实现特定的业务需求。 在Eclipse中使用ibator插件,首先...

Global site tag (gtag.js) - Google Analytics