Mybatis使用Map入参

废话不多说 上代码:

传参类:

package com.bfc.boperation.domain;

import java.util.HashMap;
import java.util.Map;

public class SearchParam {
private String draw;//重构次数
	
	private int start ;//页码
	
	private int length ;//每页
	
	private int totalRecord;//总条数
	
	private String orderColumn;
	
	private String orderDir;
	
	private String columnName;
	
	private Map<String,Object> param = new HashMap<String, Object>();

	public String getDraw() {
		return draw;
	}

	public void setDraw(String draw) {
		this.draw = draw;
	}

	
	public int getLength() {
		return length;
	}

	public void setLength(int length) {
		this.length = length;
	}

	public int getTotalRecord() {
		return totalRecord;
	}

	public void setTotalRecord(int totalRecord) {
		this.totalRecord = totalRecord;
	}

	public String getOrderColumn() {
		return orderColumn;
	}

	public void setOrderColumn(String orderColumn) {
		this.orderColumn = orderColumn;
	}

	public String getOrderDir() {
		return orderDir;
	}

	public void setOrderDir(String orderDir) {
		this.orderDir = orderDir;
	}

	public String getColumnName() {
		return columnName;
	}

	public void setColumnName(String columnName) {
		this.columnName = columnName;
	}

	public Map<String, Object> getParam() {
		return param;
	}

	public void setParam(Map<String, Object> param) {
		this.param = param;
	}

	public int getStart() {
		return start;
	}

	public void setStart(int start) {
		this.start = start;
	}

	
	
	
}

我这自设resultMap,如果你需要返回map,可将resultMap修改程resultType=“java.util.Map”即可【重点给大家讲解Map入参】

<resultMap id="BaseResultMap" type="com.bfc.boperation.model.po.Advertise">
        <constructor>
            <idArg column="advertise_id" javaType="java.lang.Long" jdbcType="BIGINT"/>
            <arg column="media_url" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <arg column="put_start_time" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
            <arg column="put_end_time" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
            <arg column="desc" javaType="java.lang.String" jdbcType="VARCHAR"/>
            <arg column="create_operation_id" javaType="java.lang.Long" jdbcType="BIGINT"/>
            <arg column="status" javaType="java.lang.Integer" jdbcType="INTEGER"/>
            <arg column="create_date" javaType="java.util.Date" jdbcType="TIMESTAMP"/>
        </constructor>
    </resultMap>

这是我的Mapper接口

     * @param map
     * @return
     */
    List<Advertise> selectBlackAdvertiseList(@Param("params") Map<String, Object> map);

 注意我使用的@Param里面的值我设params  在使用的时候 我直接使用params.key的值即可【这是我的serviceImpl层 //// 注释中的部分是返回为map的情况进行循环遍历取值【key值:数据库中的字段】get(“key”) 】

 * @param param
     * @return
     */
    @Override
    public ResponseData findAll(SearchParam param) {
        ResponseData res = new ResponseData();
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("pageNo", 0);//param.getStart()
        map.put("pageSize",2);//param.getLength()
        map.put("startTime", param.getParam().get("put_start_time"));
        map.put("endTime", param.getParam().get("put_end_time"));
//        List<Map<String, Object>> list = advertiseMapper.selectBlackAdvertiseList(map);
//        List<Advertise> list1 = new ArrayList<Advertise>();
//        for (Map<String, Object> advertise : list) {
//            Advertise advertise1 = new Advertise();
//            advertise1.setAdvertiseId(Long.valueOf(advertise.get("advertise_id").toString()));
//            advertise1.setCreateDate((Date) advertise.get("create_date"));
//            advertise1.setCreateOperationId(Long.valueOf(advertise.get("create_operation_id").toString()));
//            advertise1.setDesc(advertise.get("desc").toString());
//            advertise1.setMediaUrl(advertise.get("media_url").toString());
//            advertise1.setPutEndTime((Date) advertise.get("put_end_time"));
//            advertise1.setPutStartTime((Date) advertise.get("put_start_time"));
//            advertise1.setStatus(Integer.parseInt(advertise.get("status").toString()));
//            list1.add(advertise1);
//        }
        List<Advertise> list = advertiseMapper.selectBlackAdvertiseList(map);
        System.out.println(list.size()+"=-=");
        res.setData(list);
        res.setDraw(param.getDraw());
        return res;
    }
<select id="selectBlackAdvertiseList" parameterType="java.util.Map" resultMap="BaseResultMap">
        SELECT * FROM bfc_advertise
        <where>
            1 = 1
            <if test="params.startTime != null and params.startTime != ''">
                and put_start_time LIKE CONCAT('%',#{params.startTime},'%')
            </if>
            <if test="params.endTime != null and params.endTime != ''">
                and put_end_time LIKE CONCAT('%',#{params.endTime},'%')
            </if>
            LIMIT #{params.pageNo},#{params.pageSize}
        </where>
    </select>

猜你喜欢

转载自blog.csdn.net/Mr_ZhangAdd/article/details/85244323