MyBatis -- sql對映檔案詳解
阿新 • • 發佈:2021-06-20
1、select 元素有很多屬性允許你配置,來決定每條語句的作用細節。
<select id=”selectPerson” 在名稱空間中唯一的識別符號,可以被用來引用這條語句。 parameterType=”int” 將會傳入這條語句的引數類的完全限定名或別名。 parameterMap=”deprecated” (已廢棄) resultType=”hashmap” 從這條語句中返回的期望型別的類的完全限定名或別名。注意集合情形,那應該是集合可以包含的型別,而不能是集合本身。使用resultType或resultMap,但不能同時使用。 resultMap=”personResultMap” 命名引用外部的resultMap。返回map是MyBatis最具力量的特性,對其有一個很好的理解的話,許多複雜對映的情形就能被解決了。使用 resultMap 或 resultType,但不能同時使用。 flushCache=”false” 將其設定為true,不論語句什麼時候被呼叫,都會導致快取被清空。預設值: false。 useCache=”true” 將其設定為 true,將會導致本條語句的結果被快取。預設值: true。 timeout=”10000” 這個設定驅動程式等待資料庫返回請求結果,並丟擲異常時間的最大等待值。預設不設定(驅動自行處理)。 fetchSize=”256” 這是暗示驅動程式每次批量返回的結果行數。預設不設定(驅動自行處理)。 statementType=”PREPARED” STATEMENT,PREPARED 或 CALLABLE 的一種。這會讓 MyBatis使用選擇使用 Statement, PreparedStatement 或 CallableStatement。預設值: PREPARED。 resultSetType=”FORWARD_ONLY” FORWARD_ONLY|SCROLL_SENSITIVE|SCROLL_INSENSITIVE中的一種。預設是不設定(驅動自行處理)。 >
2、資料變更語句 insert, update 和 delete 在它們的實現中非常相似:
<insert id="insertAuthor" 在名稱空間中唯一的識別符號,可以被用來引用這條語句。 parameterType="domain.blog.Author" 將會傳入這條語句的引數類的完全限定名或別名。 flushCache="true" 將其設定為 true,不論語句什麼時候被呼叫,都會導致快取被清 空。預設值:false。 statementType="PREPARED" STATEMENT,PREPARED 或 CALLABLE 的一種。這會讓 MyBatis使用選擇使用 Statement, PreparedStatement 或CallableStatement。預設值: PREPARED。 keyProperty="" (僅對 insert有用)標記一個屬性, MyBatis 會通過 getGeneratedKeys或者通過 insert 語句的 selectKey 子元素設定它的值。預設:不設定。 useGeneratedKeys="" ( 僅 對 insert 有 用 ) 這 會 告 訴 MyBatis 使 用 JDBC 的getGeneratedKeys 方法來取出由資料(比如:像 MySQL 和 SQLServer 這樣的資料庫管理系統的自動遞增欄位)內部生成的主鍵。預設值: false。 timeout="20000" 這個設定驅動程式等待資料庫返回請求結果,並丟擲異常時間的最大等待值。預設不設定(驅動自行處理)。 >