<select id="" parameterType="" resultMap=""></select> <insert id="" parameterType=""></insert> <update id="" parameterType=""></update> <delete id="" parameterType=""></delete>
從標籤名稱能夠看出分別表示了sql語句中的select、insert、update、delete
id:標籤的標識,同命名空間惟一
parameterType:參數類型,基本數據類型直接寫類型名,自定義類型或不在java.lang包下的類寫全路徑如java.util.date
resultMap:返回值類型,需自定義resultMap標籤java
<resultMap id="UserRusult" type="cn.elinzhou.bean.User"> <id column="ID" jdbcType="INTEGER" property="id"/> <result column="Name" jdbcType="VARCHAR" property="name"/> </resultMap>
參數:
id:resultMap的標識,命名空間惟一
type:對應的bean類型,須要寫全路徑sql
字標籤:
id:主鍵
result:非主鍵數據庫
子標籤參數:
column:查詢結果中的字段名(不是數據庫字段名,若是用了AS,則爲自定義的名稱)
jdbcType:該字段的類型,如INTEGER,VARCHAR等
property:bean中的變量名bash
遍歷markdown
<foreach collection="" item="" separator="" index="" ></foreach>
collection:要遍歷的集合
item:當前遍歷到的對象
separator:遍歷到的對象以前的分隔符
index:當前遍歷對象的索引app
單條件分支ide
<if test=""></if>
test:判斷語句,使用OGNL表達式spa
多條件分支code
<choose> <when test=""></when> <when test=""></when> <when test=""></when> <when test=""></when> <otherwise></otherwise> </choose>
test:判斷語句,使用OGNL表達式xml
該標籤至關於java中的
if (){ }else if (){ }else if (){ }else if (){ }else if (){ }else{ }
where
<where></where>
在該標籤中拼接sql語句,若是內部有語句則自動拼接where關鍵詞。多條語句以前的and/or會根據是否存在其餘條件而決定是否刪除。例如只有一條判斷語句,則該語句前的and/or將自動刪除
set
<set></set>
在該標籤中拼接sql語句,若是內部有語句則自動拼接set關鍵詞。多條語句後的逗號會根據是否存在其餘條件而決定是否刪除。例如只有一條判斷語句,則該語句後的逗號將自動刪除
trim
<!--該條語句等同與where標籤--> <trim prefix="where" prefixOverrides="and"></trim> <!--該條語句等同與set標籤--> <trim prefix="set" suffixOverrides=","></trim>
trim原理同where和set標籤,只是多了自定義屬性,可模仿上述兩句定義本身須要的標籤
一對多關係
<collection property="" resultMap=""/>
該標籤須要寫在resultMap中,用來表示當前模型所包含的多個子模型,至關於表關係中的一對多關係
property:bean中對應的變量名
resultMap:子模型的resultMap標識
多對一關係
<association property="" resultMap=""/>
該標籤須要寫在resultMap中,用來表示當前模型所屬的父模型,至關於表關係中的多對一關係
property:bean中對應的變量名
resultMap:父模型的resultMap標識
<sql id=""></sql> <include refid=""/>
sql標籤內定義一個字符串,include在須要書寫sql語句的地方將其引入,省去重複書寫sql語句的過程。