自定义MyBatis返回Map对象

在项目从ibatis迁移到mybatis的过程中,遇到返回Map对象的需求,其中Key预设,Value为实体类。本文分享了一种改进的解决方案,通过创建MapParam类并使用自定义拦截器来处理结果集,实现Map对象的特定Key映射实体类的返回。在mybatis配置文件中需正确注册拦截器。
摘要由CSDN通过智能技术生成

最近一个项目要进行重构,需要把之前的ibatis转为mybatis,其中有几个方法是需要返回一个Map对象,我就到网上找方法,但找了半天,发现网上的好多都是同时指定Map的Key和Value,但现在项目需求是指指定Key值,而Value为实体类,于是我就把网上的方法进行了改善,代码如下:

1、MapParam.java

需要mybatis返回Map时需要指定参数类型为MapParam,可以通过构造函数单独指定Key,也可以同时指定Key和Value属性。

public class MapParam extends HashMap<String, Object> {
	private static final long serialVersionUID = 1L;

	private static final String KEY_FIELD = "_mapKeyField_";

	private static final String VALUE_FIELD = "_mapValueField_";

	public MapParam(String keyField) {
		this.put(KEY_FIELD, keyField);
	}

	public MapParam(String keyField, String valueField) {
		this.put(KEY_FIELD, keyField);
		this.put(VALUE_FIELD, valueField);
	}

	public String getKeyField() {
		return (String)this.get(KEY_FIELD);
	}

	public String getValueField() {
		return (String)this.get(VALUE_FIELD);
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值