`
zhaoshg
  • 浏览: 261767 次
  • 性别: 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) {
。。。。。
}
 

 

分享到:
评论

相关推荐

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

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

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

    优化主要体现在两个方面:一是不再生成注释,这有助于减少代码冗余,提高代码的整洁度;二是精简了DAO(Data Access Object)方法,这意味着插件将只生成必要的数据访问操作,避免了过度设计,使生成的代码更加精炼...

    《基于YOLOv8的智慧工地深基坑降水井运行状态监测系统》(包含源码、可视化界面、完整数据集、部署教程)简单部署即可运行。功能完善、操作简单,适合毕设或课程设计.zip

    资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。

    最新多模板仿互站友价虚拟物品在线交易商城源码 补丁更新10.31

    内附安装教程,含14套模板。 此源码为商业版全功能无授权版,1031全新的友价虚拟物品在线交易商城   模板源码,含14套模板带熊掌号及百度主动提交插件   源码运行环境,以下是友价虚拟物品在线交易   商城模板源码1031商业版的修复内容:   手机端:   新增手机版任务大厅功能   更新商家版会员中心界面   电脑端:   编辑商品视频栏目直接以弹窗方式展开,不用切换页面   调整保证金规则(有订单未完成,禁止解冻保证金)   新增商品问答功能   新增评价视频晒单功能   完善退款记录功能,每次退款跟处理结果都做记录(旧的只能保留最+新一次的退款记录)   支付宝等付款时,资金记录里同时记录交易号   阿里云OSS设置开关功能(后台基本设置-存储接口里)   开通阿里云OSS产品效果图也能存储的功能   友价   查看更多关于 友价 的文章   虚拟物品在线交易商城模板源码1023商业版源码安装教程   1.把程序上传到网站根目录下,不支持二级目录安装;   2.用EditPlus或者Notepad等代码编辑软件打开数据库配置文件:config/config.php 把里面的数据库信息改为自己的mysql数据库信息   文件内有标注,根据标注提示修改   3.导入数据库。把数据库目录下的shujku.sql数据库备份文件还原到你的mysql数据库内。   4.修改熊掌号地址,用editplus或者Notepad等代码编辑软件打开文件 user/baidu.php 把里面的这个域名 www.baidu.com 改为自己的   5.修改邮件通知名称,文件路径 yjadmin1/shop.php 把里面的关于 商业源码 这个名称,改为自己的,建议不要太长,否则会被屏蔽

    苏苏源码-jspm008-就业信息管理系统(论文+PPT).zip

    苏苏源码-jspm008-就业信息管理系统(论文+PPT)

    Ubuntu18.04与PX4环境下基于虚拟机的无人机仿真开发环境搭建及应用

    内容概要:本文详细介绍了基于Ubuntu 18.04系统的PX4虚拟机环境的安装、配置和使用方法。该虚拟机预装了完整的PX4源码和编译工具链,支持Gazebo单机和多机仿真。文中涵盖了环境变量检查、源码编译、Gazebo启动、多机仿真配置以及常见问题解决等多个方面。同时,提供了针对硬件资源有限情况下的优化建议,如开启3D加速、使用HEADLESS模式等。 适用人群:具有一定Linux基础和PX4开发经验的研发人员,特别是希望快速搭建无人机仿真环境进行算法验证和技术探索的开发者。 使用场景及目标:适用于需要快速验证无人机控制算法、测试多机协同飞行、模拟复杂环境条件(如强风干扰)的研究和开发工作。目标是减少环境配置的时间成本,专注于飞控逻辑和算法的开发与测试。 其他说明:尽管虚拟机环境极大地方便了开发,但对于长期深入开发和大规模仿真,仍建议在物理机上安装双系统或更高性能的计算平台。此外,文中提到的一些特定配置和优化技巧有助于提高仿真效率和稳定性。

    三菱FX系列PLC解密软件详解与实操指南

    内容概要:本文详细介绍了三菱FX系列PLC解密软件及其使用方法。首先解释了为何需要解密PLC程序以及解密的实际应用场景,如旧设备改造和功能升级。接着展示了具体的解密技术和工具,包括Python和C#实现的解密算法,以及关键的串口通信配置和密码校验机制。文中还提供了详细的视频教程链接,指导用户逐步完成解密过程,并强调了合法合规使用的必要性和注意事项。此外,分享了一些实用技巧,如针对不同型号PLC的特殊操作和避免常见错误的方法。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要对三菱FX系列PLC进行维护、升级或二次开发的专业人士。 使用场景及目标:适用于需要对三菱FX系列PLC程序进行解密、分析或修改的工作场合,目的是解决因程序加密带来的技术难题,提高工作效率和设备利用率。 其他说明:文中提供的所有信息仅供技术交流和个人学习使用,请确保在合法合规的前提下进行任何操作。

    多媒体计算机系统组成专业知识讲座.pptx

    多媒体计算机系统组成专业知识讲座.pptx

    苏苏源码-jspm006-东风锻造有限公司重大停管理系统(论文+PPT).zip

    苏苏源码-jspm006-东风锻造有限公司重大停管理系统(论文+PPT)

    libd-0.1.0.tar.gz

    该资源为libd-0.1.0.tar.gz,欢迎下载使用哦!

    2023年全国计算机二级JAVA考试练习题及答案.docx

    2023年全国计算机二级JAVA考试练习题及答案.docx

    redis 免安装版本使用

    redis 免安装版本

    Simulink调用神经网络模型进行回归预测、分类和时间序列分析的技术详解

    内容概要:本文详细介绍了如何在Simulink中调用训练好的神经网络模型,涵盖回归预测、分类任务和时间序列分析三大应用场景。首先,通过MATLAB训练神经网络模型并保存,然后在Simulink中利用MATLAB Function模块或其他相关模块加载模型进行预测。对于回归预测,展示了如何训练前馈网络并将其应用于发动机性能预测;对于分类任务,提供了设备故障分类的具体实现方法;对于时间序列分析,则通过LSTM网络预测股价走势。文中还强调了数据预处理、模型保存格式选择、Simulink模块配置以及常见问题解决方法。 适合人群:具有一定MATLAB和Simulink基础,希望将神经网络模型应用于实际工程项目的工程师和技术人员。 使用场景及目标:适用于需要将神经网络模型集成到Simulink环境中的项目,如工业自动化、金融数据分析等领域。主要目标是提高模型部署效率,优化预测精度,减少开发周期。 其他说明:文中提供了详细的代码示例和注意事项,帮助读者更好地理解和实践。建议读者在实践中结合具体需求调整参数和配置,以达到最佳效果。

    Spring的声明式事务在多线程的场景当中会失效,解决方案

    Spring的声明式事务在多线程的场景当中会失效,解决方案,但是我们最好不要在一个事务中开启另一个事物;除非我们将事物的上下文传递到另一个事物中,但spring并不会这样做,所以通常我们要手动设置将事物回滚;获得conection,然后手动设置事务的回滚;

    工业自动化中昆仑通态触摸屏与台达变频器Modbus通讯控制详解

    内容概要:本文详细介绍了如何通过Modbus RTU协议实现昆仑通态触摸屏与台达变频器的通讯控制。主要内容涵盖硬件接线、参数配置、程序编写以及调试方法。文中提供了详细的接线步骤、参数设置指导、示例代码和常见问题解决办法,帮助读者掌握触摸屏与变频器之间的通讯流程和技术要点。 适合人群:从事工业自动化领域的工程师和技术人员,尤其是那些需要进行触摸屏和变频器通讯对接工作的人员。 使用场景及目标:适用于需要实现触摸屏与变频器通讯控制的实际工程项目。主要目标是通过Modbus RTU协议完成两者之间的数据交互,从而实现对变频器的远程监控和控制。 其他说明:文章不仅提供了理论知识,还结合了大量实践经验,特别是针对一些容易出现的问题给出了详细的解决方案。这对于初学者来说非常有帮助,可以减少调试时间和错误发生的概率。

    ### 2024中国CGO增长峰会:聚焦消费驱动增长与品牌全球化战略布局

    内容概要:2024年中国CGO增长峰会在厦门举办,围绕“踏浪而行”的主题,探讨中国经济增长的新方向和策略。峰会汇集了众多知名企业和专家学者,共同探讨了中国经济从投资驱动向消费驱动转型的趋势,强调了品牌建设、数字化转型、消费升级的重要性。著名社会学家孙立平提出,中国经济已进入收缩期,需转向消费主导型增长;德勤中国首席经济学家许思涛则认为,中国经济长期增长率将保持在4%左右,消费将成为主要驱动力。会上,多家知名企业分享了各自的创新实践,如恒源祥的数字转型、小红书的生活服务种草模式、见福便利店的数字化升级等。峰会还特别关注了品牌出海的战略,强调全球化布局和本地化运营的重要性。 适合人群:企业高管、品牌营销专家、经济学家、政府官员及相关从业者。 使用场景及目标:①了解中国经济增长的新趋势和政策导向;②学习品牌建设和数字化转型的最佳实践;③探讨消费市场的新机遇和挑战;④探索品牌出海的路径和策略。 其他说明:峰会不仅是一次思想碰撞的盛会,也是品牌企业寻找增长路径、推动中国经济发展的平台。会议强调了信心的重要性,鼓励企业在AI时代提升学习力,勇于探索和创新,以应对复杂多变的经济环境。

    基于MATLAB/Simulink的三相感应电机SVPWM逆变器仿真与优化

    内容概要:本文详细介绍了如何使用MATLAB/Simulink构建和优化三相感应电机的空间矢量脉宽调制(SVPWM)逆变器仿真模型。首先,文章解释了SVPWM的基本原理及其在电机控制中的应用,接着逐步指导读者搭建三相逆变器、实现SVPWM算法以及设置电机模型参数。文中还提供了多个实用技巧,如互锁逻辑、扇区判断、占空比计算、死区时间和参数调优方法。此外,作者强调了仿真过程中需要注意的关键点,如直流母线电压利用率、电流THD和转矩脉动等性能指标的监控。 适合人群:具有一定MATLAB/Simulink基础,从事电机控制系统设计的研究人员和技术人员。 使用场景及目标:适用于希望深入了解SVPWM逆变器工作原理及其实现细节的技术人员。通过本文的学习,读者能够掌握从理论到实践的完整流程,从而更好地应用于实际工程项目中。 其他说明:文章不仅提供了详细的代码片段和参数设置指南,还分享了许多实战经验和调试技巧,帮助读者避开常见的陷阱并提高仿真的准确性。

    2023年新版计算机二级办公软件WORD试题讲解步骤.doc

    2023年新版计算机二级办公软件WORD试题讲解步骤.doc

    超级简易的书店管理系统

    超级简易的书店管理系统

    2023年计算机一级考试题1000道.doc

    2023年计算机一级考试题1000道.doc

Global site tag (gtag.js) - Google Analytics