我写我的内选择查询mapper.xml
<select id="getCatCount" parameterType="String" resultType="int">
select count(*) from Categories where status is not null
<if test="catTypeId != 0">
AND cat_type_id = #{catTypeId,jdbcType=INTEGER}
</if>
</select>
和在mapper.java方法是
int getCatCount(int catTypeId);
我如何检查catTypeId在if条件。 我知道上面的说法是不正确,但我想提出这样的条件,所以我检查,如果不catTypeId零,则只会增加和状况。 或者我需要通过类别类的整对象?
你并不需要通过整个类别类。 只要做到这一点,你描述的:
int getCatCount(int catTypeId);
你mapper.xml应该是这样的:
<select id="getCatCount" parameterClass="map" resultType="int">
select count(*) from Categories where status is not null
<if test="param1 != 0">
AND cat_type_id = #{param1,jdbcType=INTEGER}
</if>
</select>
请注意,如parameterClass
你需要指定一个地图。
比方说,现在,你想传递两个参数:
int getCatCount(int catTypeId, int mySecondParam);
在映射器,你应该一起工作param1
和param2
你看,你如何需要使用“paramX”命名。 但是,让我们说,那而不是使用术语,你想使用自定义的参数名称为“catTypeId”。 对于这一点,在你的Java代码,你需要这样做:
int getCatCount( @Param("cat_type_id ") String cat_type_id);
该XML映射器将是我把它关于之一,但使用cat_type_id
代替param1
。