zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    Hard Rock
    Codeforces Round #416 (Div. 2) B. Vladik and Complicated Book
    codeforces 793B. Igor and his way to work
    codeforces 1B Spreadsheets
    HDU 1069 Monkey and Banana
    codeforces 2B The least round way
    【机器学习】 通俗说拟合
    python-八皇后问题
    python-核心知识思维导图
    python-@property 属性
  • 原文地址:https://www.cnblogs.com/xz-luckydog/p/5588093.html
Copyright © 2011-2022 走看看