mybatis 工作常用語法
阿新 • • 發佈:2020-07-13
轉義字元
大於號 | > | > |
小於號 | < | < |
與 | & | & |
單引號 | " | ' |
雙引號 | ' | " |
foreach的用法
foreach元素的屬性主要有item,index,collection,open,separator,close。
- item:集合中元素迭代時的別名,該引數為必選。
- index:在list和陣列中,index是元素的序號,在map中,index是元素的key,該引數可選
- open:foreach程式碼的開始符號,一般是(和close=")"合用。常用在in(),values()時。該引數可選
- separator:元素之間的分隔符,例如在in()的時候,separator=","會自動在元素中間用“,“隔開,避免手動輸入逗號導致sql錯誤,如in(1,2,)這樣。該引數可選。
- close:foreach程式碼的關閉符號,一般是)和open="("合用。常用在in(),values()時。該引數可選。
- collection:要做foreach的物件,作為入參時,List物件預設用"list"代替作為鍵,陣列物件有"array"代替作為鍵,Map物件沒有預設的鍵。當然在作為入參時可以使用@Param("keyName")來設定鍵,設定keyName後,list,array將會失效。 除了入參這種情況外,還有一種作為引數物件的某個欄位的時候。舉個例子:如果User有屬性List ids。入參是User物件,那麼這個collection = "ids".如果User有屬性Ids ids;其中Ids是個物件,Ids有個屬性List id;入參是User物件,那麼collection = "ids.id"
AND t1.img_name IN <foreach collection="imgNames" index="index" item="item" open="(" separator="," close=")"> #{item} </foreach> 是否是某個特定字串 <if test="rankWay=='byAssessDate' ">
collection用法
<resultMap id="selectMap" type="com.pwl.vcloud.common.entity.UserVO"> <id column="id" property="id" /> <result column="username" property="username" /> <result column="nickname" property="nickname" /> <result column="password" property="password" /> <result column="enabled" property="enabled" /> <result column="email" property="email" /> <result column="userface" property="userface" /> <result column="reg_time" property="regTime" /> <collection property="roleList" ofType="com.pwl.vcloud.common.entity.Roles"> <id column="r_id" property="id"></id> <result column="role_name" property="name"></result> <result column="role_code" property="roleCode"></result> </collection>
</resultMap>
public class UserVO implements Serializable { private Integer id; private String username; private String nickname; private String password; private Integer enabled; private String email; private String userface; private Date regTime; /** * 角色列表 */ private List<Roles> roleList = new ArrayList<>(); //其他 }