MyBatisのSQL文は書かれて

、forEachの

インタフェース:

公共の一覧<実体> queryById(一覧<文字列>のユーザーID);

構文:

<選択ID = "queryById"このresultMap = "BaseReslutMap"> 
    セレクト * エンティティから
    IDに
     <foreachのコレクション= "ユーザID"項目= "USERID"インデックス= "インデックス"オープン= "("セパレータ= ""クローズ=」 )「> 
        #{ユーザID}
     </ foreachの> 
</選択>

 

二、CONCAT(あいまいクエリ)

 

構文:

<SELECT ID = "queryById"このresultMap = "BascResultMap"のParameterType = "エンティティ"> 
     SELECT *エンティティから
    <> 
        <もしテスト= "名前!= NULL"> 
            CONCAT( '%'、CONCAT(#{名前}のような名前、 '%'))
        </ IF> 
    </場所> 
</選択>        

  

三、選択(、そうでない)ラベル

構文:

:<! - -条件按顺序将实体类ユーザー第一个不为空的属性作为- (参数判断)を選択> 
<選択のid = "getUserList_choose"このresultMap = "resultMap_user"のParameterType = "com.yiibai。 "> pojo.User 
   SELECT * 
   ユーザからU
      <> 
       <>を選択します
         <時にテスト="「ユーザ名を!= nullを> 
           CONCAT(CONCAT(LIKE u.usernameは '%'、#{ユーザー名、jdbcType = VARCHAR})」 %」)
          </とき> 
         <テスト= "セックス!= nullをしてセックス!= '' "> 
           とu.sex =#{性別、jdbcType = INTEGER}
          </> 
         <テスト="誕生日!= nullを「>
           AND u.birthday =#{誕生日、jdbcType = DATE}
          </場合>
       <それ以外> 
       </そうでない> 
     </選択> 
   </場所> 
</ select>の

(自動的に追加割り当てコンポーネントオブジェクトによって生成された)4つ、selectKey

<! -插入学生自动主键- > 
<挿入のid = "createStudentAutoKey"のParameterType = "liming.student.manager.data.model.StudentEntity" keyProperty = "studentId"> 
     <selectKey keyProperty = "studentId" resultTypeと= "文字列"順="> "が前
        NEXTVAL(選択 '学生'  </ selectKey> 
         INSERT INTO STUDENT_TBL(STUDENT_ID、
         STUDENT_NAME、
         STUDENT_SEX、
         STUDENT_BIRTHDAY、
         STUDENT_PHOTO、
         CLASS_ID、
         PLACE_ID)
         VALUES(#{studentIdを}、
         #{studentName}、
         #{ studentSex}、
         #{studentBirthday}
         #{studentPhoto、JavaTypeが =バイト []、jdbcType = BLOB、typeHandler = org.apache.ibatis.type.BlobTypeHandler}、
         #{CLASSID}、
         #{} placeId)
 </インサート>

 

第五に、型のArrayListのパラメータは、

<! - 7.1 foreachの(循环配列参数) -作为中的に条件- > 
<選択ID = "getStudentListByClassIds_foreach_array"このresultMap = "resultMap_studentEntity"> 
	 ST.STUDENT_ID選択
	 ST.STUDENT_NAME、
	 ST.STUDENT_SEX、
	 ST.STUDENT_BIRTHDAYを
	 ST.STUDENT_PHOTO、
	 ST.CLASS_ID、
	 ST.PLACE_ID 
	 STUDENT_TBL ST FROM 
	 ST.CLASS_ID IN 
	 <foreachのコレクション= "アレイ"項目= "のclassid"オープン= "("セパレータ= ""クローズ= ")"> 
		#{のclassid } 
	 </ foreachの> 
</選択> 

六、+であれば

<! - 3を選択-どこ/ 場合将实体类不为空的属性作为どこ条件- - (判断参数)> 
<選択のid = "getStudentList_whereIf"このresultMap = "resultMap_studentEntity"のParameterType = "liming.student.manager。 data.model.StudentEntity "> 
     ST.STUDENT_ID、SELECT 
     ST.STUDENT_NAME、
     ST.STUDENT_SEX、
     ST.STUDENT_BIRTHDAY、
     ST.STUDENT_PHOTO、
     ST.CLASS_ID、
     ST.PLACE_IDを
     STUDENT_TBL ST FROM
      <場所> 
         < もしテスト=" studentName!= nullを「> 
         ST.STUDENT_NAME LIKE CONCAT(CONCAT( '%'、#{studentName、jdbcType = VARCHAR})、 '%'  </ なら >
         < もしテスト= "studentSex!= nullをしてstudentSex!= '' "> 
         とST.STUDENT_SEX =#{studentSex、jdbcType = INTEGER}
          </ 場合 > 
         < もしテスト=" studentBirthday!= nullの"> 
         とST.STUDENT_BIRTHDAY =#{ studentBirthday、jdbcType = DATE}
          </ 場合 > 
         < もしテスト= "CLASSID!= nullをしてCLASSID!= '' "> 
         とST.CLASS_ID =#{CLASSID、jdbcType = VARCHAR}
          </ 場合 > 
         < もしテスト=" classEntity != nullのとclassEntity.classId!= NULLとclassEntity.classId!=」 '「>
         AND ST.CLASS_ID =#{classEntity.classId、jdbcType = VARCHAR}
          </ 場合 > 
         < もしテスト= "placeId!= nullをしてplaceId!= ''"> 
         とST.PLACE_ID =#{placeId、jdbcType = VARCHAR}
          < / 場合 > 
         < もしテスト= "placeEntity!= NULLとplaceEntity.placeId!= NULLとplaceEntity.placeId!= ''"> 
         AND ST.PLACE_ID =#{placeEntity.placeId、jdbcType = VARCHAR}
          </ 場合 > 
         < もしテスト= "studentId!= nullをしてstudentId!= ''">
         AND ST.STUDENT_ID=#{studentId、jdbcType = VARCHAR}
          </ 場合 > 
     </場所> 
</選択>

 

おすすめ

転載: www.cnblogs.com/ldl326308/p/10956504.html