iBatis和Hibernate之間有著較大的差異,但兩者解決方案很好,因為他們有特定的領(lǐng)域。我個人建議使用iBATIS的,如果:
你想創(chuàng)建自己的SQL,并愿意維持他們.
你的環(huán)境是由關(guān)系數(shù)據(jù)模型驅(qū)動的。
你的項目工作有復(fù)雜架構(gòu)的。
簡單地要使用Hibernate,如果:
你的環(huán)境是由對象模型驅(qū)動的,并希望自動生成的SQL。
要計算的一些區(qū)別:
簡單
更快的開發(fā)時間
靈活
封裝尺寸更小
為你生成SQL,這意味著你不用花時間在SQL上。
提供了許多更先進的高速緩存
高可擴展性
另一個區(qū)別是,iBATIS利用SQL語句可能是依賴數(shù)據(jù)庫,使用Hibernate的HQL是相對獨立于數(shù)據(jù)庫,它是更容易改變數(shù)據(jù)庫。
Hibernate映射的Java作為POJO對象,iBatis將ResultSet映射,從JDBC API給出POJO OBJETS的數(shù)據(jù)庫表。
如果您使用存儲過程,那么在Hibernate中可以做到這一點,但它在iBATIS比較有點困難。作為一種替代的解決方案iBATIS的映射結(jié)果集對象,所以沒必要去關(guān)心表結(jié)構(gòu)。這非常適用于存儲過程,非常適用于報表應(yīng)用程序等
最后,Hibernate和iBATIS的都是開源的對象關(guān)系映射(ORM)在同行業(yè)中可用的工具。使用這些工具的取決于你。Hibernate和iBatis兩者也有來自Spring框架的良好支持,以便它不應(yīng)該是一個問題,選擇其中之一。