设为首页 收藏本站
查看: 1554|回复: 0

[经验分享] Ibatis 生成工具ibator的使用 适用于ibaits2 mybatis用使用Mybatis Generator

[复制链接]

尚未签到

发表于 2016-11-28 06:53:05 | 显示全部楼层 |阅读模式
  这里使用的是ibator作为ibatisEclipse插件,ibator的主页是:http://ibatis.apache.org/ibator.html
  它提供两种方式:一种是Eclipse插件,一种是独立运行。
  目前针对Eclipse的版本有两个版本,
  1.2.1能运行在:
  · Eclipse 3.4.1 or higher
  · JDK 5.0 or Higher
  · 它的Eclipse插件URL下载地址为:http://ibatis.apache.org/tools/ibator
  1.1.0运行在:
  · Eclipse 3.2 or higher
  · JDK 1.4 or Higher
  · 它的Eclipse插件URL下载地址为:http://ibatis.apache.org/tools/abator
  注意:版本问题,笔者开始用的是myEclipse6.0.1,是eclipse 3.3.1平台,装了1.2.1怎么也不能用,调查才发现,不要因为版本而影响作用。
范例:
  新建一个工程,然后在该工程下新建文件,截图如下:(如果这里没有请到other..中找,截图如右:)
  点击后就会新建一个文件:abatorConfig.xml。
  以下是1.1.0的写法,供大家参照:
  <?xml version="1.0" encoding="UTF-8" ?>
  <!DOCTYPE abatorConfiguration PUBLIC "-//Apache Software Foundation//DTD Abator for iBATIS Configuration 1.0//EN" "http://ibatis.apache.org/dtd/abator-config_1_0.dtd" >
  <abatorConfiguration >
  <abatorContext >
  <jdbcConnection driverClass="com.microsoft.jdbc.sqlserver.SQLServerDriver" connectionURL="jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=cmspro"userId="cmspro" password="cmspro" >
  <classPathEntry location="D:\POM\project\msbase.jar" />
  <classPathEntry location="D:\POM\project\mssqlserver.jar"/>
  <classPathEntry location="D:\POM\project\msutil.jar" />
  </jdbcConnection>
  <javaModelGenerator targetPackage="com.ucap.account.model" targetProject="account-service-impl" />
  <sqlMapGenerator targetPackage="resources.sqlmaps" targetProject="account-service-impl" />
  <daoGenerator targetPackage="com.ucap.account.dao" targetProject="account-service-impl" type="GENERIC-CI" />
  <table tableName="cmspro_channel_privilege" domainObjectName="ChannelPrivilege"/>
  </abatorContext>
  </abatorConfiguration>
  这里<table>标签中的domainObjectName,是用来重新命名类名。
  以下是1.2.1的写法,供大家参照:
  <?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>
 <!--
      url     指定属性文件绝对路径。注意与指定数据库jdbc驱动jar包路径的区别哈。
                    可以使用${property}的格式引用属性文件中的属性值。
    <properties url="D:\WorkSpace\SSIStudy\ibator-config.properties"/>
    -->
    <!--
      classPathEntry 指定数据库jdbc驱动jar包的绝对路径。 可为为空
      The full path name of a JAR/ZIP file to add to the classpath, or a directory to add to the classpath
    --> 
    <classPathEntry location="D:\WorkSpace\SSIStudy\WebRoot\WEB-INF\lib" />
   
    <!--
      id                 这个id可以在使用命令行运行Abator时指定,以单独处理某一个ibatorContext
      targetRuntime        Ibatis2Java5 生成适合JDK5.0的类,另一个选项是 Ibatis2Java2,生成适合Java2的类。
    -->
  <ibatorContext id="SSIStudy" targetRuntime="Ibatis2Java2">
   <!--
           ibatorPlugin 继承自IbatorPluginAdapter,包名必须是 org.apache.ibatis.ibator.plugins,具体实现可以参考官方文档
             必须有替换和被替换字符属性。 可以没有
     -->
     <!--
   <ibatorPlugin type="org.apache.ibatis.ibator.plugins.RenameExampleClassPlugin">
             <property name="searchString" value="Example$" />
             <property name="replaceString" value="Criteria" />
     </ibatorPlugin>
    
           driverClass        数据库驱动类  这里连接sqlserver2000
           connectionURL      数据库连接地址
           userId             用户
           password           密码
            还可以使用以下格式添加数据库的其他连接属性
           <property name="" value=""/>
     -->
      
    <jdbcConnection driverClass="com.microsoft.jdbc.sqlserver.SQLServerDriver" connectionURL="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=demo"userId="sa" password="sa" >
     </jdbcConnection>
    
     <javaTypeResolver >
           <!--
                   默认false,把JDBC DECIMAL 和 NUMERIC 类型解析为 Integer
                   true,把JDBC DECIMAL 和 NUMERIC 类型解析为java.math.BigDecimal
           --> 
           <property name="forceBigDecimals" value="false" />
     </javaTypeResolver>
    <!-- //When running outside of an IDE environment like Eclipse, Ibator interprets the targetProject and targetPackage attributes in all XML configurations as follows
           targetProject        生成的Java Bean放置在哪个项目的哪个目录下
           targetPackage        生成的Java Bean的包名
          
             一个有用的属性
            从数据库返回的值被清理前后的空格
           <property name="trimStrings" value="true" />
            是否在包名后加上scheme名称       
           <property name="enableSubPackages" value="false" />      
     --> 
     <javaModelGenerator targetPackage="cn.per.jiabeis.model" targetProject="D:\WorkSpace\SSIStudy\src">
      <property name="enableSubPackages" value="true" />
     <property name="trimStrings" value="true" />
     </javaModelGenerator>
     <!--
           targetProject        生成的 SqlMap.xml 文件放置在哪个项目的哪个目录下
           targetPackage        生成的 SqlMap.xml 文件的包名
           <property name="enableSubPackages" value="false" />
                   是否在包名后加上scheme名称
      -->
     <sqlMapGenerator targetPackage="cn.per.jiabeis.model.config" targetProject="D:\WorkSpace\SSIStudy\src">
      <property name="enableSubPackages" value="true" />
     </sqlMapGenerator>
      <!--
           targetProject        生成的 dao类文件放置在哪个项目的哪个目录下
           targetPackage        生成的 dao类文件的包名
           <property name="enableSubPackages" value="false" />
                   是否在包名后加上scheme名称
           type        生成dao文件的类型,可选择IBATIS、SPRING、GENERIC-CI、GENERIC-SI。默认使用GENERIC-CI
                       dao类在构造器中获取 SqlMapClient。
                   
     -->
     <daoGenerator targetPackage="cn.per.jiabeis.dao" targetProject="D:\WorkSpace\SSIStudy\src" type="IBATIS">
     <property name="enableSubPackages" value="true" />
  </daoGenerator>
  
  <!--
           tableName 数据库表明,据说可以包含SQL通配符%和_。
           domainObjectName 数据库表对应的数据对象名称,默认使用表名作为对象名称。
     -->
     <table tableName="student" domainObjectName="Student">
      <!--
                   对象的属性名是否使用字段名称,默认为true
      -->
      <property name="stuname" value="stuname"/>
       <!--
               column    自增长或使用sequence生成的字段名
               sqlStatement 生成字段的sql片段或其简称(参考官方文档)
               identity    true表示后生成,false表示预生成
               
                   例如:
                   
                   postgresql:<generatedKey 
                       column="lid" 
                       sqlStatement="select nextval('tb000000producttype_lid_seq')" 
                       identity="false" />
                       
                   sqlserver:<generatedKey 
                       column="lid" 
                       sqlStatement="SqlServer" 
                       identity="true" />
                       
                   oracle:<generatedKey 
                       column="lid" 
                       sqlStatement="select tb000000producttype_lid_seq.nextval from dual" 
                       identity="false" />
                   MySql:<generatedKey 
                       column="lid" 
                       sqlStatement="MySql" 
                       identity="false" />
               
         -->
      <generatedKey column="stuid" sqlStatement="SqlServer" identity="true"/>
      
         <!--
                   数据库字段名称到对象属性名称的影射关系。就是一个替换处理。
          -->
         <columnRenamingRule searchString="^CUST_" replaceString="" /> 
         <!--
                   column  字段名
                   property 字段对应的属性名。(默认使用字段名的)
                   javaType 对应的Java类型
                   jdbcType 对应的jdbc类型
                   
                       这里的设置覆写javaTypeResolver中的指定
          -->
       <columnOverride column="DATE_FIELD" property="startDate" />
           
          <!--
               column    需要忽略的数据库字段
          -->  
          <ignoreColumn column="FRED" />  
         
     </table>
   
     <table tableName="teacher"/>
     <table tableName="course"/>
     <table tableName="stu_course"/>
    </ibatorContext>
</ibatorConfiguration>
  以上书写好xml后,请鼠标右键点击该xml文件生成Artifacts。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-306295-1-1.html 上篇帖子: 我们一起读文档,学习MyBatis(一)----------- 一个简单demo的实现 下篇帖子: redis(五)redis与Mybatis的无缝整合让MyBatis透明的管理缓存二
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表