Eva
Java粉絲募集中
  • 簡介
  • 我們的優勢
  • 最新消息
  • 下載與使用
  • 範例與說明
    • Eva Objects >
      • Bean類別定義
      • Entity型別定義
      • Struct型別定義
      • 建立Entity空白物件
      • 建立Entity修改物件
      • 建立Entity條件物件
      • 建立Struct值物件
    • Eva_ORM >
      • ORM程式主體
      • 使用條件物件執行操作
      • 執行更複雜條件的操作.
      • 分頁取回資料
      • 操作JDBC的參數
      • Array Property的操作
      • Collection Property的操作
      • 更複雜的Collection Property
      • 指定表格名稱
      • 新增資料庫Dialect
    • Eva_IOC >
      • IOC程式主體
      • AOP應用
    • Eva_Struct >
      • Struct範例
      • Bit Strcut範例
      • 指標範例
      • 於Eva_ORM中使用
    • Eva_Sort >
      • 依指定Properties排序
      • 部份排序
      • 優先排序部份
    • Eva_Cache >
      • hashing-based cache
      • 非hashing-based cache
  • API列表
  • 技術支援
    • 協助開發
  • 相關書籍
图片
图片

Hibernate

Hibernate是一組目前由JBoss提供的ORM工具, 它最早在2001年就己經出現, 並且在己經超過10年的漫長的發展過程中, 累積了相當多的使用者. 元老級的Hibernate, 可說是目前在Java ORM領域中, 佔有率最高, 且最有影響力的工具之一.

MyBatis.

前身為iBatis的MyBatis, 目前為Google Code底下的重要工具, 它最早同樣出現於2001年, 並且同樣擁有大量的使用者. MyBatis過去也曾以優秀的執行效能著名, 但其執行效能, 需仰賴使用自己所下SQL指令的最佳化, 而且需要自訂Mapper的間接成本, 也會使得它在執行簡單的操作時, 效能稍有減損.

Eva 與其它工具的操作效能比較

我們建立了一組簡單的測試程式, 用以測試Eva_ORM與Hibernate與MyBatis, 這三種工具其最基本的物件, 增, 刪,  改, 查, 操作效能. 被我們所測試工具的版本分別為, 最新的Beta版Eva_ORM, 最新的正式版Hibernate4.1.7, 最新的正式版本MyBatis3.1.1 而關於可執行的測試程式, 請點擊下面三個圖示去下載.
eva_orm_performance.zip
File Size: 6185 kb
File Type: zip
Download File

Hibernate_Performance.zip
File Size: 6704 kb
File Type: zip
Download File

MyBatis_Performance.zip
File Size: 3024 kb
File Type: zip
Download File

除了內定connection pool的選擇不同外, 我們對於測試的要求為, 去除掉載入工具時所花的時間, 雙方僅量使用同樣的參數, 例如fetchSize, batchSize, 與相同的資料量, 操作相同的資料庫, 我們這裡使用的是in-memory database HSQLDB, 去測試相同的行為. 而且我們是使用 Hibernate 的 StatelessSession 物件去做測試, 三方都不使用任何cache, 最後, 在左方的圖表中呈現了我們自己的測試結果.

測試的結果顯示, Eva_ORM在新增, 與查詢資料時具有效能上的優勢, 而查詢又是資料庫在使用上, 最多變化與最常被使用的操作. 所以我們對這樣的測試結果也感到滿意. 

而雖然Eva_ORM在物件刪除與更新的效能比較中落後, 但我們也必須額外指出, Eva_ORM 與 Hibernate 與 MyBatis 的update與delete方法有些許不同. 
  1. Eva_ORM的update與delete操作, 都會傳回一個boolean, 或是boolean[]物件, 來記錄對於那些傳入物件的操作, 那些是成功的, 那些是失敗的, 但其它工具卻省略了這些回應.
  2. Eva_ORM會將己經儲存, 或來自資料庫的資料物件, 變成唯讀的, 以免讓使用者寫出有bug的程式, 例如像是, 使用者不小心修改了取自cache中的物件, 造成cache中儲存不對的查詢結果, 但這也讓物件的update行為需要額外的歩驟.
最後, 對於本項測試有興趣的朋友, 可點擊下方三個圖示去下載測試程式的程式碼, 再自行修改程式去做更多想要的測試.

Eva_ORM_Performance_src.zip
File Size: 4202 kb
File Type: zip
Download File

Hibernate_Performance_src.zip
File Size: 690 kb
File Type: zip
Download File

MyBatis_Performance_src.zip
File Size: 690 kb
File Type: zip
Download File

Powered by Create your own unique website with customizable templates.