1.
比较大的公司都是要求xml的sql中不可以使用 * 号的,那么那么多字段看着确实很别扭
<sql id="Base_Column_List">
id, gmt_create,gmt_modified,gmt_creator,gmt_modifier
</sql>
在mapper.xml中写这个,然后
<include refid="Base_Column_List" />
使用include标签把这段当 * 使还是不错的
当然,include也可以用来拼接sql等.
2.
select
<include refid="Base_Column_List" />
from api_mapping
where 1=0
<if test="id!= null">
OR prod_code = #{id,jdbcType=VARCHAR}
</if>
这样传id为空的话也不会出现sql错误,只是返回空结果集
3.
<if test="_parameter != null">
OR prod_code = #{_parameter,jdbcType=VARCHAR}
</if>
当时看到这个_parameter有那么一些懵
说一下传参方式吧
(1) 单个参数(String) 不加@Param , 使用_parameter 就上面那个例子
(2) 多个参数 不加@param: 比如三个参数 #{0},#{1},#{2} 或者 #{param1},#{param2}#{param3}
注意! 前者是#{0}代表第一个参数 , 后者是#{param1}代表第一个参数
(3)多个参数 不加@param: 使用Map传参
#{key}取值 注意标签中 用 parameterType="java.util.Map"属性
(4)加@Param 直接#{注解中定义的属性名}传值