我想知道如何在带有可选参数的mybatis xml
存储过程调用中进行描述。
例如:
DAO
public List getMethod1(Object arg1) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("arg1", arg1);
return selectList("myBatisSelect", map);
}
public List getMethod1(Object arg1, Object arg2) {
Map<String, Object> map = new HashMap<String, Object>();
map.put("arg1", arg1);
map.put("arg2", arg2);
return selectList("myBatisSelect", map);
}
XML
<select id="myBatisSelect"
parameterType="map"
resultType="MyResultObject">
CALL sql_stored_procedure
(
@arg1= #{arg1}
<!-- How to add optional parameter here??-->
)
</select>
答案 0 :(得分:2)
您可以使用条件逻辑来动态生成您的SQL。
即
<select id="myBatisSelect"
parameterType="map"
resultType="MyResultObject">
CALL sql_stored_procedure
(
@arg1= #{arg1}
<if test="arg2 != null">
,#{arg2}
</if>
)
</select>
MyBatis3 User Guide有更多信息。