、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} </ 場合 > </場所> </選択>