1.mapper文件判断Map中的key是否存在,以及if test语句:
例:
List<ChatContent> selectListByGroupid(Map<String,String> parame);
mapper:
<select id="selectListByGroupid" parameterType="java.util.Map" resultMap="BaseResultMap">
select
<include refid="Base_Column_List" />
from
chat_content cc
<where>
<if test="_parameter.containsKey('groupId') and groupId != null and groupId != ''">
cc.group_id = #{groupId}
</if>
<if test="_parameter.containsKey('userName') and userName != null and userName != ''">
or cc.from_id = #{userName}
</if>
</where>
order by
created desc
</select>
2.mapper文件中的模糊查询,在mysql中有效
<where>
<if test="toId != null and toId != ''">
or cc.to_id like CONCAT(CONCAT('%', #{toId}), '%')
</if>
<if test="chatType != null and chatType != ''">
or cc.chat_type like CONCAT(CONCAT('%', #{chatType}), '%')
</if>
<if test="chatContentType != null and chatContentType != ''">
or cc.chat_content_type like CONCAT(CONCAT('%', #{chatContentType}), '%')
</if>
<if test="groupId != null and groupId != ''">
or cc.group_id like CONCAT(CONCAT('%', #{groupId}), '%')
</if>
</where>
3.mybatis trim()简单插入数据
<!-- 插入 -->
<insert id="insert" parameterType="com.citic.gatz.model.AppVersion">
insert into app_version
<trim prefix="(" suffix=")">
<include refid="Base_Column_List" />
</trim>
<trim prefix="values (" suffix=")">
#{versionID},
#{versionName},
#{versionType},
#{url},
#{version}
</trim>
</insert>
基本语法:
prefix:前缀覆盖并增加其内容
suffix:后缀覆盖并增加其内容
prefixOverrides:前缀判断的条件
suffixOverrides:后缀判断的条件