最近研究了mybatis 穿参数的问题,记录如下
List<Group> findByName(String namea);
<!-- 如果只傳入一個參數就按照這種寫法 -->
<select id="findByName" parameterType="String"
resultType="com.vote.iot.entity.Group">
select * from vote.group vg
<where>
<if test="_parameter!=null and _parameter!=''">
AND name = #{namea}
</if>
</where>
</select>
<!-- 多個參數的查詢方法 -->
List<Group>findByNameAndSuccess(String name,Boolean success);
<select id="findByNameAndSuccess"
resultType="com.vote.iot.entity.Group">
select * from vote.group vg where name=#{0} and success=#{1} <!-- 0,1代表着是第幾個參數 -->
</select>
<!-- 多個參數的查詢方法 -->
使用hashMap
public List<Group> findByMap(HashMap map);
<select id="findByMap" parameterType="java.util.HashMap"
resultType="com.vote.iot.entity.Group">
select * from vote.group vg where name=#{name} and success=#{success}
</select>
<!-- 按照list來in-->
List<Group>findByIds(List<Integer>ids);
<select id="findByIds" resultType="com.vote.iot.entity.Group">
Select *from vote.group where id in
<foreach item="item" index="index" collection="list" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<!-- 按照數組的形式來 in -->
List<Group>findByArrayids(Integer[]ids);
<select id="findByArrayids" resultType="com.vote.iot.entity.Group">
Select *from vote.group where id in
<foreach item="item" index="index" collection="array" open="(" separator="," close=")">
#{item}
</foreach>
</select>