我们在开发中经常编写sql语句,最多的就是查询,所以我这里以查询为例。在mapper.xml文件中编写sql语句的时候会有查询条件参数,那我们什么时候直接写参数名字?什么时候需要对象.参数名呢?大致分为以后几种情况:
情况一:我们只有少量查询参数,是单个传值的。比如:
List querList(String param1, String param2);
那在xml文件中直接使用就可以:
<select id="queryList">
SELECT
* from table
<where>
<if test="param1!=null">
AND param1 = #{param1}
</if>
<if test="param2!=null">
AND param2 = #{param2}
</if>
</where>
</select>
情况二:传递单个参数对象
List querList(Object param1);
这时候xml里面,不需要写param1,直接用属性即可
<select id="queryList">
SELECT
* from table
<where>
<if test="property!=null">
AND column = #{property
</if>
</where>
</select>
情况三:多参数对象
List querList(Object param2, @Param("obj1") Object param1);
这时候需要指定param
<select id="queryList">
SELECT
* from table
<where>
<if test="obj1.param1!=null">
AND param1 = #{obj1.param1}
</if>
<if test="obj1.param2!=null">
AND param2 = #{obj1.param2}
</if>
</where>
</select>
本文讨论了在SQL查询中,如何根据参数类型(单值、对象及对象属性)在mapper.xml文件中正确配置查询条件。
7122

被折叠的 条评论
为什么被折叠?



