Legacy:如果沒有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屬性則用來告訴abator生成的DAO是用于iBATIS還是SPRING等容器。
<table>告訴abator生成那個(gè)table的sqlMap。
<generatedKey>來告訴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)一步考證,沒仔細(xì)看,但至少看到not in語(yǔ)句,如果要使用的話至少要進(jìn)行一些修改。(^-^)個(gè)人愚見。 參考:Abator document: http://ibatis.apache.org/docs/tools/abator/ 楓 iBATIS的Eclipse插件Abator使用方法
posted on 2007-08-19 19:09 YY 閱讀(6330) 評(píng)論(2) 編輯 收藏 所屬分類: ibatis
不錯(cuò),謝了 回復(fù) 更多評(píng)論
不過我的identity="false"才是正確的 回復(fù) 更多評(píng)論
Powered by: BlogJava Copyright © YY