在 MyBatis 中,resultType
是用于指定查詢結果映射到 Java 對象的類型。當你在 MyBatis 的 XML 映射文件中編寫 SQL 查詢時,可以使用 resultType
屬性來指定返回的數據類型。例如:
SELECT * FROM users WHERE id = #{id}
</select>
在這個例子中,resultType
被設置為 “com.example.User”,表示查詢結果將映射到 com.example.User
類的實例。
關于緩存策略,MyBatis 提供了一級緩存和二級緩存。一級緩存是默認開啟的,它的作用范圍是 SqlSession 級別的。當在同一個 SqlSession 中執行相同的查詢語句時,MyBatis 會優先從一級緩存中獲取結果,而不是直接從數據庫查詢。這樣可以提高查詢性能。
二級緩存是可選的,需要在 MyBatis 的配置文件中顯式開啟。它的作用范圍是 namespace 級別的,可以跨多個 SqlSession 共享。當一個查詢語句被加入到二級緩存中時,所有 SqlSession 都可以從這個緩存中獲取結果。這樣可以進一步提高查詢性能。
resultType
與緩存策略之間的關系在于,當查詢結果從緩存中獲取時,MyBatis 需要知道如何將緩存中的數據映射到 Java 對象。這就是 resultType
的作用。在一級緩存和二級緩存中,resultType
指定的類型將被用作緩存值的類型。當從緩存中獲取數據時,MyBatis 會根據 resultType
將緩存值轉換為相應的 Java 對象。