Mybatis 标签 [ trim / foreach]

1、trim(可以用来代替 where

可以在自己包含的内容前加上某些前缀,也可以在其后加上某些后缀,与之对应的属性是prefix和suffix;

可以把包含内容的首部某些内容忽略,也可以把尾部的某些内容忽略,对应的属性是prefixOverrides和suffixOverrides;

案例:

prefix="where " ,prefixOverrrides =" and  |or" ,  suffix=" set" , suffixOverrides=", " >

prefixOverrides 属性会忽略通过管道分隔的文本序列(注意此例中的空格也是必要的)

select * from user 
  
     AND name=#{name}
     AND gender=#{gender}
  



update user
  
     name=#{name} , 
     AND gender=#{gender} ,  
  




        INSERT INTO S_NOTICE 
        
            ID,
            TITLE,
            CONTENT,
            NOTICE_STATUS,
            CREATED_BY,
            CREATED_TS,
            LAST_UPD_BY,
            LAST_UPD_TS,
        
        
            SYS_GUID(),
            #{title,jdbcType=VARCHAR},
            #{content,jdbcType=VARCHAR},
            #{noticeStatus,jdbcType=VARCHAR},
            #{createdBy,jdbcType=VARCHAR},
            systimestamp,
            #{lastUpdBy,jdbcType=VARCHAR},
            systimestamp,
        
    

2、foreach(查询in,批量插入)

collection:参数名称,根据Mapper接口的参数名确定,也可以使用@Param注解指定参数名

item:参数调用名称,通过此属性来获取集合单项的值

open:相当于prefix,即在循环前添加前缀

close:相当于suffix,即在循环后添加后缀

index:索引、下标

separator:分隔符,每次循环完成后添加此分隔符

 

in查询

mapper接口:
	  List getEmployeesListParams(@Param("singleList") List employeeIds);

          List getEmployeesArrayParams(@Param("singleArry") String[] employeeIds);

          List getEmployeesMapParams(Map params);


XML实现:
    	



 




tips:此处没有 @Param("singleLIst") 注解时,XML里只能是 collection="list"

         此处没有 @Param("singleArry") 注解时,XML里只能是 collection="array"

        此处Map:不单单forech中的collection属性是map.key, 其它所有属性都是map.key,比如下面的departmentId

如果传入的参数是多个的时候,我们就需要把它们封装成一个Map了,当然单参数也可以封装成map,实际上如果你在传入参数的时候,在MyBatis里面也是会把它封装成一个Map的,map的key就是参数名,所以这个时候collection属性值就是传入的List或array对象在自己封装的map里面的key.

 

批量插入

mapper接口
         int insertMultiUsers(@Param("users") List users);

XML实现:
    	
    		insert into user(user_name,gender,email,address,dept_id)
    		values
    		
    			(#{user.userName},#{user.gender},#{user.email},#{user.address},#{user.deptId})
    		
    	

 

你可能感兴趣的:(Mybatis)