1.if+where
<select id="getgoods" resultType="Goods" >
select * from goods
<where>
<if test="name!=null and name!=' ' ">
and name concat('%',#{name},'%')
</if>
<if test="条件">
and .....
</if>
</where>
</select>
2.if+trim
(查询的)
<trim prefix="where" prefixOverrides="and | or">
<if test="条件">
and .....
</if>
</trim>
(修改的)
<trim prefix="set" sufixOverrides="," suffix="where id=#{id}">
<if test="条件">
name=#{name}
</if>
</trim>
3.if+set(用于修改)
update goods(表名)
<set>
<if test="条件">
name=#{name},
</if>
</set>
where id=#{id}
4.foreach
<select id="getgoods" resultType="goods">
select * from goods where price in
<foreach collection="array" items="prices" open="("separator=","close=")">
#{prices}
</foreach>
</select>
collection:数组类型
若参数类型是一个List(动态数组) collection属性值为list
若参数类型是一个数组的时候 collection属性值为array
备注:如果参多个参数的话就封装为一个Map
用法如下:
sql映射文件
test代码:
动态sql大致这么多,谢谢参考。