1. 程式人生 > >mybatis單引數以及多引數集合查詢

mybatis單引數以及多引數集合查詢

單引數情況:

(1)array

List<CarnumberAlarm> selectByDeviceIdAndTime(String[] ids);

xml配置:     <if test="ids != null and ids.length > 0" >         deviceId in          <foreach collection="array" open="(" separator="," close=")" item="item" index="index">             #{item,jdbcType=VARCHAR}         </foreach>     </if>

(2)list

List<CarnumberAlarm> selectByDeviceIdAndTime(List<String> ids);

xml配置:     <if test="ids != null and ids.size() > 0" >         deviceId in          <foreach collection="list" open="(" separator="," close=")" item="item" index="index">             #{item,jdbcType=VARCHAR}         </foreach>     </if>

(3)map

List<CarnumberAlarm> selectByDeviceIdAndTime(Map<String, Object> params);

xml配置:     <if test="ids != null and ids.size() > 0" >         deviceId in 

        <!--collection屬性是map.key,其它所有屬性都是map.key-->         <foreach collection="ids" open="(" separator="," close=")" item="item" index="index">             #{item,jdbcType=VARCHAR}         </foreach>     </if>

多個引數情況下,需要取別名:

(1)array

List<CarnumberAlarm> selectByDeviceIdAndTime(@Param("ids")String[] ids, @Param("startTime")Date startTime, @Param("endTime")Date endTime, @Param("pageIndex")Long pageIndex,@Param("pageSize")Long pageSize);

xml配置:

  <!-- 根據裝置id列表以及起止時間分頁檢索 -->   <select id="selectByDeviceIdAndTime" resultMap="BaseResultMap">     select      <include refid="Base_Column_List" />     from t_carnumber_alarm      where alarmTime between #{startTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP}     <if test="ids != null and ids.length > 0" >         and deviceId in          <foreach collection="ids" open="(" separator="," close=")" item="id" index="index">             #{id,jdbcType=VARCHAR}         </foreach>     </if>     limit #{pageIndex,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}   </select>

(2)list

List<CarnumberAlarm> selectByDeviceIdAndTime(@Param("ids")List<String> ids, @Param("startTime")Date startTime, @Param("endTime")Date endTime, @Param("pageIndex")Long pageIndex,@Param("pageSize")Long pageSize);

xml配置: 

<!-- 根據裝置id列表以及起止時間分頁檢索 -->   <select id="selectByDeviceIdAndTime" resultMap="BaseResultMap">     select      <include refid="Base_Column_List" />     from t_carnumber_alarm      where alarmTime between #{startTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP}     <if test="ds != null and ids.size() > 0" >         and deviceId in          <foreach collection="ids" open="(" separator="," close=")" item="id" index="index">             #{id,jdbcType=VARCHAR}         </foreach>     </if>     limit #{pageIndex,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}   </select>

(3)map

List<CarnumberAlarm> selectByDeviceIdAndTime(@Param("params")List<String> params, @Param("startTime")Date startTime, @Param("endTime")Date endTime, @Param("pageIndex")Long pageIndex,@Param("pageSize")Long pageSize);

xml配置:<!-- 根據裝置id列表以及起止時間分頁檢索 -->   <select id="selectByDeviceIdAndTime" resultMap="BaseResultMap">     select      <include refid="Base_Column_List" />     from t_carnumber_alarm      where alarmTime between #{startTime,jdbcType=TIMESTAMP} and #{endTime,jdbcType=TIMESTAMP}     <if test="params!= null and params.size() > 0" >         and deviceId in 

        <!--params.keys, params.values, params.鍵名-->         <foreach collection="params.values" open="(" separator="," close=")" item="id" index="index">             #{id,jdbcType=VARCHAR}         </foreach>     </if>     limit #{pageIndex,jdbcType=INTEGER},#{pageSize,jdbcType=INTEGER}   </select>