Java Persistence with MyBatis 小結1

來源:互聯網
上載者:User

標籤:orm   存在   結果   軟體應用   緩衝   架構   特性   bsp   串連   

資料持久層做的工作是1)將從資料庫中查詢到的資料產生需要的java對象;2)將 Java 對象中的資料通過 SQL 持久化到資料庫中。

MyBatis 通過抽象底層的 JDBC 代碼,自動化 SQL 結果集產生 Java 對象、Java 對象的資料持久化資料庫中的過程使得對 SQL 的使用變得容易。

MyBatis 抽象了上述的這些相同的任務,如準備需要被執行的 SQL statement 對象並且將 Java 對象作為輸入資料傳遞給 statement 對象的任務,進而開發人員可以專註於真正重要的方面。

MyBatis 自動化了將從輸入的 Java 對象中的屬性設定成查詢參數、從 SQL 結果集上產生 Java 對象這兩個過程。

 

MyBatis 還提供了其他的一些特性來簡化持久化邏輯的實現:
? 它支援複雜的 SQL 結果集資料對應到嵌套對象圖結構
? 它支援一對一和一對多的結果集和 Java 對象的映射
? 它支援根據輸入的資料構建動態 SQL 陳述式

 

MyBatis 是將查詢的結果與 Java 對象映射起來,這使得 MyBatis 可以很好地與傳統資料庫協同工作。你可以根據物件導向的模型建立 Java 域對象,執行傳統資料庫的查詢,然後將結果映射到對應的 Java 對象上。

 

MyBatis 有內建的 SqlSession 層級的緩衝機制,用於緩衝 Select 語句查詢出來的結果。除此之外,MyBatis 提供了與多種第三方緩衝類庫的整合支援,如 EHCache,OSCache,Hazelcast。

 

效能問題是關乎軟體應用成功與否的關鍵因素之一。為了達到更好的效能,需要考慮很多事情,而對很多應用而言,資料持久化層是整個系統效能的關鍵。
MyBatis 支援資料庫連接池,消除了為每一個請求建立一個資料庫連接的開銷MyBatis 提供了內建的緩衝機制,在 SqlSession 層級提供了對 SQL 查詢結果的緩衝。即:如果你調用了相同的select 查詢,MyBatis 會將放在緩衝的結果返回,而不會去再查詢資料庫。
MyBatis 架構並沒有大量地使用代理機制 2 ,因此對於其他的過度地使用代理的 ORM 架構而言,MyBatis 可以獲得更好的效能。

 

每一個線程應該有它自己的 SqlSession 執行個體。SqlSession 對象執行個體不是安全執行緒的,並且不被共用。所以 SqlSession 的範圍最好就是其所在方法的範圍。從 Web 應用程式角度上看,SqlSession 應該存在於 request 層級範圍上。

 

Java Persistence with MyBatis 小結1

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.