mybatis註解開發
MyBatis可以利用SQL對映檔案來配置,也可以利用Annotation來設定。MyBatis提供的一些基本註解如下表所示。
註解 |
目標 |
相應的XML |
描述 |
@CacheNamespace |
類 |
<cache> |
為給定的名稱空間(比如類)配置快取。屬性: implemetation,eviction, flushInterval , size 和 readWrite 。 |
@CacheNamespaceRef |
類 |
<cacheRef> |
參照另外一個名稱空間的快取來使用。 屬性:value,也就是類的完全限定名。 |
@ConstructorArgs |
方法 |
<constructor> |
收集一組結果傳遞給物件構造方法。 屬性:value,是形式引數的陣列 |
@Arg |
方法 |
<arg> <idArg>
|
單獨的構造方法引數,是ConstructorArgs 集合的一部分。屬性:id,column,javaType,typeHandler。 id屬性是布林值,來標識用於比較的屬性,和<idArg>XML 元素相似 |
@TypeDiscriminator |
方法 |
<discriminator> |
一組例項值被用來決定結果對映的表 現。屬性:Column, javaType , jdbcType typeHandler,cases。 cases屬性就是例項的陣列。 |
@Case |
方法 |
<case> |
單獨例項的值和它對應的對映。屬性:value ,type ,results 。 Results 屬性是結果陣列,因此這個註解和實際的ResultMap 很相似,由下面的 Results註解指定 |
@Results |
方法 |
<resultMap> |
結果對映的列表,包含了一個特別結果 列如何被對映到屬性或欄位的詳情。 屬性:value ,是Result註解的陣列 |
@Result |
方法 |
<result> <id> |
在列和屬性或欄位之間的單獨結果映 射。屬性:id ,column , property, javaType ,jdbcType ,type Handler , one,many。id 屬性是一個布林值,表 示了應該被用於比較的屬性。one屬性是單獨的聯絡,和 <association> 相似,而many 屬性是對集合而言的,和 <collection>相似。 |
@One |
方法 |
<association> |
複雜型別的單獨屬性值對映。屬性: select,已對映語句(也就是對映器方 法)的完全限定名,它可以載入合適類 型的例項。注意:聯合對映在註解API 中是不支援的。 |
@Many |
方法 |
<collection> |
複雜型別的集合屬性對映。屬性: select,是對映器方法的完全限定名,它可載入合適型別的一組例項。注意:聯合對映在 Java註解中是不支援的。 |
@Options |
方法 |
對映語句的屬性 |
這個註解提供訪問交換和配置選項的寬廣範圍,它們通常在對映語句上作為屬性出現。而不是將每條語句註解變複雜,Options 註解提供連貫清晰的方式來訪問它們。屬性:useCache=true, flushCache=false, resultSetType=FORWARD_ONLY, statementType=PREPARED, fetchSize= -1,timeout=-1 , useGeneratedKeys=false , keyProperty=”id“。 理解Java 註解是很重要的,因為沒有辦法來指定“null ”作為值。因此,一旦你使用了 Options註解,語句就受所有預設值的支配。要注意什麼樣的預設值來避免不期望的行為 |
@Insert @Update @Delete |
方法 |
<insert> <update> <delete> |
這些註解中的每一個代表了執行的真實 SQL。它們每一個都使用字串陣列(或單獨的字串)。如果傳遞的是字串陣列,它們由每個分隔它們的單獨空間串聯起來。屬性:value,這是字串陣列用來組成單獨的SQL語句 |
@InsertProvider @UpdateProvider @DeleteProvider @SelectProvider |
方法 |
<insert> <update> <delete> <select> 允許建立動態 SQL。 |
這些可選的SQL註解允許你指定一個 類名和一個方法在執行時來返回執行 的SQL。基於執行的對映語句, MyBatis 會例項化這個類,然後執行由 provider 指定的方法. 這個方法可以選擇性的接 受引數物件作為它的唯一引數,但是必 須只指定該引數或者沒有引數。屬性: type,method。type 屬性是類的完全限定名。method 是該類中的那個方法名。 |
@Param |
引數 |
N/A |
當對映器方法需多個引數,這個註解可以被應用於對映器方法引數來給每個引數一個名字。否則,多引數將會以它們的順序位置來被命名。比如 #{1},#{2} 等,這是預設的。 使用@Param(“person”),SQL中引數應該被命名為#{person}。
|