<if>標簽
if元素是最常用的判斷語句相當於java中的if語句,他常常與test屬性聯合使用,if test 就相當於判定, 若符合標簽標簽中的條件,則在SQL語句上添加<if></if>內的條件下面代碼實戰我們會詳細講到
增刪改查就不說了。
<where>標簽
where標簽經常跟if標簽搭配使用,where標簽會判斷if標簽里的條件是否成立,如果有條件成立則會拼接執行該條件下的sql語句。where標簽避免所有條件都為空的時候出現“select * from user where ”這種會出錯的情況,當然我們也可以在where后面加入“1=1”簡單的解決。
<set>標簽
set標簽一般用在update語句中,set標簽與where標簽類似,當我們在update語句里碰到多個字段相關的問題,在這種情況下我們就會用到set標簽,他也是判斷if標簽里的條件是否成立,然后拼接執行sql語句。
<choose>標簽
相比於if標簽二選一,choose標簽就有了第三種選擇,或者更多的選擇,在映射器的動態語句中使用choose..when..otherwise..這三個元素就能滿足不同的業務要求,Mybatis會根據參數的設置進行判斷,來拼接組裝sql語句,當when標簽下無滿足條件,則會執行otherwise標簽里的語句。
<foreach>標簽
foreach元素是一個循環語句,他的作用是遍歷集合,他能夠很好的支持數組和List的集合。並對此提供遍歷,foreach標簽常用於in這樣的語法里,進行批量處理
resultMap 標簽
基本作用:建立SQL查詢結果字段與實體屬性的映射關系信息
查詢的結果集轉換為java對象,方便進一步操作
將結果集中的列與java對象中的屬性對應起來並將值填充進去
例:
<resultMap id="getStudentRM" type="EStudnet">
<id property="id" column="ID"/>
<result property="studentName" column="Name"/>
<result property="studentAge" column="Age"/>
</resultMap>
<select id="getStudent" resultMap="getStudentRM">
SELECT ID, Name, Age
FROM TStudent
</select>
標簽說明:
主標簽
id:該resultMap的標志
type:返回值的類名,此例中返回EStudnet類
子標簽:
id:用於設置主鍵字段與領域模型屬性的映射關系,此處主鍵為ID,對應id。
result:用於設置普通字段與領域模型屬性的映射關系
trim標簽
trim是更靈活的去處多余關鍵字的標簽,他可以實踐where和set的效果。
where例子的等效trim語句:
<!-- 查詢學生list,like姓名,=性別 -->
<select id="getStudentListWhere" parameterType="StudentEntity" resultMap="studentResultMap">
SELECT * from STUDENT_TBL ST
<trim prefix="WHERE" prefixOverrides="AND|OR">
<if test="studentName!=null and studentName!='' ">
ST.STUDENT_NAME LIKE CONCAT(CONCAT('%', #{studentName}),'%')
</if>
<if test="studentSex!= null and studentSex!= '' ">
AND ST.STUDENT_SEX = #{studentSex}
</if>
</trim>
</select>
SQL標簽
更多用於寫sql語句的一部分,寫在配置文件中的常量
include標簽
用於引用常量
----------------------------------------------------------------------
----------------------------------------------------------------------
mybatis 除了使用xml方式還有別的方式嗎?
還可以吧xml改為Mapper接口