Java天空

           

          ibatis eclipse plugin Abator配置使用簡(jiǎn)單說(shuō)明

          安裝:
                   eclipse自動(dòng)安裝url: http://ibatis.apache.org/tools/abator

          配置:
                   安裝好后將在New菜單中看到一個(gè)新的文件類型Abator for iBATIS Configuration File,這個(gè)是Abator的配置文件,new一個(gè)并修改配置文件,配置樣式如下所示:

          <?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 generatorSet="Java5">    <!-- TODO: Add Database Connection Information -->
              
          <jdbcConnection driverClass="oracle.jdbc.driver.OracleDriver"
                  connectionURL
          ="jdbc:oracle:thin:@127.0.0.1:1521:orcl"
                  userId
          ="user"
                  password
          ="password">
                
          <!-- 注意:以下的classPathEntry一定要設(shè)置,否則會(huì)出現(xiàn)Exception JDBC Driver的錯(cuò)誤 -->
                
          <classPathEntry location="D:/workspace/lib/ojdbc14_g.jar" />
              
          </jdbcConnection>

              
          <javaModelGenerator targetPackage="com.iamyy.test.ibatis.vo" targetProject="AbatorTest" />
              
          <sqlMapGenerator targetPackage="com.iamyy.test.ibatis.dao" targetProject="AbatorTest" />
              
          <daoGenerator type="IBATIS" targetPackage="com.iamyy.test.ibatis.dao" targetProject="AbatorTest" />

              
          <table tableName="T_Role" domainObjectName="Role">
                
          <generatedKey column="role_id" identity="true" sqlStatement="select s_role.nextval from dual"/>
                
          <columnOverride column="role_id" property="id" javaType="java.lang.String" jdbcType="VARCHAR"/>
                
          <columnOverride column="role_name" property="name" javaType="java.lang.String" jdbcType="VARCHAR" />
              
          </table>

            
          </abatorContext>
          </abatorConfiguration>


             
          abatorContext的一個(gè)屬性generatorSet有3個(gè)選項(xiàng)Legacy、Java2、Java5,一般用Java5;

                   Legacy:如果沒(méi)有g(shù)eneratorSet屬性的話,默認(rèn)是Legacy。但并不推薦使用Legacy因?yàn)樗谏蒃xample類(用于查詢條件)的時(shí)候有很多限制,他將查詢條件寫在sqlMap配置文件中,將查詢值寫在Example中,這樣就對(duì)修改產(chǎn)生一些困難。

                   Java2和Java5:他們只支持iBATIS 2.20以上的版本。在以這個(gè)模式成生的Example文件中包含了查詢條件和查詢值。這樣修改就方便多了,對(duì)于用join的select時(shí)的查詢就更方 便了,自己可以定義查詢條件,自由度高了很多(對(duì)于join的and查詢可能還得自己修改一下Example代碼)。對(duì)于or和and的應(yīng)用Legacy 的限制就比較大了。

                   <javaModelGenerator>、 <sqlMapGenerator>、 <daoGenerator>描述了個(gè)自生成的位置。<daoGenerator>中type屬性則用來(lái)告訴abator生成的DAO是用于iBATIS還是SPRING等容器。

                   <table>告訴abator生成那個(gè)table的sqlMap。

                   <generatedKey>來(lái)告訴abator那些列需要自動(dòng)返回值(當(dāng)插入的時(shí)候可以返回插入記錄的主鍵,這對(duì)有外鍵的數(shù)據(jù)庫(kù)極其有用)identity默認(rèn)為false,則在sqlMap配置文件中<selectKey>的位置在sql命令前面,所以identity應(yīng)該改為true。根據(jù)數(shù)據(jù)庫(kù)類型的不同sqlStatement屬性取值也不同。


          運(yùn)行:

                   右鍵單擊配置文件,點(diǎn)擊Generate iBatis Artifacts,生成文件。

                   ps: 如果<daoGenerator>中type屬性是ibatis的話,由于Abator生成的DAOImpl文件繼承自com.ibatis.dao.client.template.SqlMapDaoTemplate,在ibatis ver. 2.3.0.677中會(huì)有錯(cuò)誤提示,需酌情修改。
                   ps的ps: 不建議使用自動(dòng)生成的Example去操作數(shù)據(jù),一是因?yàn)镋xample中生成的方法有拼寫SQL之嫌不符合OO思想,二是拼寫后SQL效率有待進(jìn)一步考證,沒(méi)仔細(xì)看,但至少看到not in語(yǔ)句,如果要使用的話至少要進(jìn)行一些修改。(^-^)個(gè)人愚見(jiàn)。
                   
                   參考:Abator document: http://ibatis.apache.org/docs/tools/abator/
                                 iBATIS的Eclipse插件Abator使用方法

          posted on 2007-08-19 19:09 YY 閱讀(6331) 評(píng)論(2)  編輯  收藏 所屬分類: ibatis

          評(píng)論

          # re: ibatis eclipse plugin Abator配置使用簡(jiǎn)單說(shuō)明 2008-11-14 11:03 happy

          不錯(cuò),謝了  回復(fù)  更多評(píng)論   

          # re: ibatis eclipse plugin Abator配置使用簡(jiǎn)單說(shuō)明 2009-04-14 15:29 zgw

          不過(guò)我的identity="false"才是正確的  回復(fù)  更多評(píng)論   

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          友情鏈接

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 微博| 边坝县| 宣威市| 大安市| 临西县| 五莲县| 毕节市| 集贤县| 孙吴县| 普格县| 包头市| 东辽县| 巴中市| 洛川县| 和平区| 印江| 绥芬河市| 荔浦县| 浦江县| 达拉特旗| 纳雍县| 南京市| 柳州市| 广丰县| 精河县| 合江县| 天津市| 许昌市| 海原县| 忻州市| 贺州市| 井陉县| 耿马| 莱芜市| 新野县| 昆山市| 利辛县| 沂水县| 东山县| 五台县| 秦安县|