• Ibator的配置和使用


    1.     Ibator介绍

    Ibator是iBATIS的代码发生器,其原名叫abator,后来更名为Ibator,同时代码结构也做了相应的一些修改,所以两者的配置也有所不同。Ibator可以生成一个数据库中的一个表(或多个表)的DAO层、DO层及符合iBATIS规范的配置,它减少了我们编写配置文件、创建DO及DAO的工作量,并且可以创建简单的CRUD(创建,检索,更新,删除),我们可以在此基础之上进行修改,而不必完全的重新去实现了,这非常大的节省了我们的工作量,特别是操作比较多的表的时候,这个优势体现的更加明显。

    2.     Ibator插件安装

    Ibator插件有多种安装方式,并且Eclipse、MyEclipse都能支持。

    2.1 Eclipse下的本地安装方式:

    首先:下载插件:http://files.cnblogs.com/files/xz-luckydog/ibator.rar

    然后按以下步骤操作:

    在eclipse菜单中打开插件安装界面:Help -> InstallNew Software ...

    接下来 继续点 Next 即可,最后重启Eclipse。

    验证插件是否安装成功:

    从Eclipse菜单栏依次点击:File—>New—>Other: 在搜索框中输入 “ib”,如出现下图表示安装成功。

     2.2 MyEclipse下的本地安装方式:

    Myeclipse下的安装有些不同,插件一共有2种安装方式:

    1.远程安装.
    myeclipse -> Help -> myeclipse configuration center -> software -> add site -> 这步根据提示输入 ->ok,这时会在 software update available 位置出现一个 apply change 按钮,点击,耐心等待,重启 myeclipse。 

    2.手动安装.
    下载后的操作步骤基本上与远程安装一样,只有一个区别:在add site 后选择 add from archive file 即 从本地安装,选择一下刚刚下载的rar包就ok了,之后步骤与上面一样。

    3.     Ibator配置介绍

     在Eclipse中新建一个Java Project,然后右键New>Other 选择ABator for iBatisconfiguration File,FileName默认为ibatorConfig.xml。点击“完成”,Eclipse会在程序根目录下建立ibatorConfig.xml文件,打开编辑它,初始内容如下:

    <?xmlversion="1.0" encoding="UTF-8" ?>

    <!DOCTYPE ibatorConfiguration PUBLIC"-//Apache SoftwareFoundation//DTDApache iBATISIbatorConfiguration 1.0//EN""http://ibatis.apache.org/dtd/ibator-config_1_0.dtd" >

    <ibatorConfiguration >

     <ibatorContext id="context1" >

       <jdbcConnection driverClass="???"connectionURL="???" userId="???" password="???"/>

       <javaModelGenerator targetPackage="???"targetProject="???" />

       <sqlMapGenerator targetPackage="???"targetProject="???" />

       <daoGenerator targetPackage="???"targetProject="???" type="GENERIC-CI" />

       <table schema="???" tableName="???" >

         <columnOverride column="???" property="???" />

       </table>

     </ibatorContext>

    </ibatorConfiguration>

    根据自己的需求进行配置:

    <?xmlversion="1.0" encoding="UTF-8" ?>

    <!DOCTYPE ibatorConfiguration PUBLIC"-//Apache SoftwareFoundation//DTDApache iBATISIbatorConfiguration 1.0//EN""http://ibatis.apache.org/dtd/ibator-config_1_0.dtd" >

    <ibatorConfiguration >

       <!-- 注意classPathEntry位置,改属性不在默认配置文件中,需要手动添加,用于指定数据库驱动路径-->

      <classPathEntry location="e:/MySQL-connector-java-5.1.30.jar" />

     <ibatorContext id="context1" >

      <!-- 分别为: 驱动名称,数据库URL,用户名,密码-->

       <jdbcConnection driverClass="com.mysql.jdbc.Driver"connectionURL="jdbc:mysql://localhost:3306/test"userId="root" password="123" />

       <!-- javaBean生成器 targetPackage:包名,targetProject:项目名-->

       <javaModelGenerator targetPackage="com.domain"targetProject="iBatisDemo" />

       <!-- 映射文件生成器 -->

       <sqlMapGenerator targetPackage="com.config"targetProject="iBatisDemo" />

       

    <!-- dao生成器,type 指定生成dao类的模板,可选择IBATIS、SPRING、GENERIC-CI、GENERIC-SI
        implementationPackage dao实现类的包名 -->
        <daoGenerator targetPackage="com.dao" targetProject="iBatisDemo" implementationPackage="com.dao.impl" type="SPRING" />
        
        <!-- 表名属性映射 tableName为表名,可使用SQL通配符%和_,  domainObjectName为对应类名,如不写则默认和表名相同 -->
        <table schema="" tableName="usertbl" domainObjectName="UsertblDomain">
        <!-- columnOverride 指定属性名称,不指定则以默认规则处理:字母先全变小写,然后去掉下划线,下划线后首字母大写 -->
          <columnOverride column="id" property="uid" />
        </table>
        <table schema="" tableName="%" domainObjectName="" >
        <!-- 是否使用列名做属性名,默认值为false, 处理规则:字母先全变小写,然后去掉下划线,下划线后首字母大写-->
        <property name="useActualColumnNames" value="true"/>
        <!-- 指定生成主键的语句 -->
        <generatedKey column="id" sqlStatement="SELECT LAST_INSERT_ID()+1"/>
        <!-- 指定生成列名的 替换规则  -->
        <columnRenamingRule searchString="flag" replaceString="FLAG" />
        <!-- 指定生成的列名 -->
        <columnOverride column="id" property="uid" />
        <!-- 忽略掉无需生成的列 -->
        <ignoreColumn column="sendFlag"/>
        </table>

     

     </ibatorContext>

    </ibatorConfiguration>

    4.     Ibator代码生成及优化

    配置完成后,在配置文件上右击,如图:选择GenerateiBATIS Artifacts

    执行完成后就会发现,项目src下已经生成好了我们指定的目录及文件:

     

     打开文件后你发现,Ibator在生成的时候,会为每个方法、每个配置都生成注释,有时显得很啰嗦且无用,看着影响心情。有没有办法不让它生成注释呢?有,但是我们只能修改源码Ibator的源码啦,在插件安装完成后,安装目录下的源文件:eclipsepluginsorg.apache.ibatis.ibator.core_1.2.1ibator-src.zip,解压后拷贝到Eclipse下

    优化一:清除注释

    找到文件:org.apache.ibatis.abator.internal.DefaultCommentGenerator.java,把不需要生成注释的方法的内容都清空吧,这些都是void方法,不会有其他的应用。

    优化二:清除DAO中多余方法

    另外在生成的DAO及DAO实现中有不少的Example方法,在配置文件中也有,这些如果你也用不到的话也可以为了处理掉,把下面两个类找到:

       org.apache.ibatis.ibator.generator.ibatis2.dao.DAOGenerator中的getCompilationUnits方法

       org.apache.ibatis.ibator.generator.ibatis2.sqlmap.SqlMapGenerator中的getSqlMapElement方法

       把其中的带Example的方法其调用的地方全部注释掉即可

    优化三:去除ID前缀ibatorgenerated_

    还有在生成的配置文件中的id还有前缀“ibatorgenerated_”,看着也觉得太长,此时找到文件:

       org.apache.ibatis.ibator.config.MergeConstants,将NEW_XML_ELEMENT_PREFIX的值设为空"" 再生成就可以了。

    也可以直接下载优化好的jar文件,替换即可。

    下载地址:http://files.cnblogs.com/files/xz-luckydog/ibator.rar

  • 相关阅读:
    最短路径:HDU2006-一个人的旅行(多个起点,多个终点)
    最短路径(最基础,经典的模板和思想):HDU-2544最短路
    数学算法:poweroj1026-丑数(根据固定倍数得到从小到大的序列)
    动态规划:ZOJ1074-最大和子矩阵 DP(最长子序列的升级版)
    数论:HDU1066-Last non-zero Digit in N!
    容斥原理:HDU-4135Co-prime
    数学算法:求一个数的质因子
    动态规划(入门,滚动数组,记录的都是状态):SWUSTACM-1010 魔兽争霸之最后的反击
    动态规划(入门):各种数字三角形
    动态规划:HDU2571-命运
  • 原文地址:https://www.cnblogs.com/xz-luckydog/p/5588093.html
Copyright © 2020-2023  润新知