xml文件中代码
<select id="formMcu" parameterType="java.lang.String" resultType="java.util.HashMap">
select
CONCAT(a.CANID,
CONCAT('_',FIELDNAME)) CAN_COLUMN,
PROPERTYNAME
from
fiber_can_content self,
fiber_can a,
fiber_group b
where
self.FIBER_CAN_ID=a.ID
and a.FIBER_GROUP_ID=b.ID
and fiber_unid = #{unid}
</select>
注意的是返回值 resultType = “java.util.HashMap”
dao层中
list<map> id (String unid);//多个结果的话保存在一个list里
service层中
private Map<String,BigDecimal> getBaseMap(Logger logger) {
Map<String, BigDecimal> baseMap = new HashMap<String, BigDecimal>();
List<Map<String, Object>> baseList = eadTrafficBaseMapper.getBaseMap();
for (Map<String, Object> map:baseList //遍历list
) {
String base = null;
BigDecimal fare = null;
for (Map.Entry<String,Object> entry:map.entrySet() //遍历map的key集合 获取对应key的value
) {
if ("base".equals(entry.getKey())) {
base = String.valueOf(entry.getValue());
}else if ("traffic_fare".equals(entry.getKey())) {
fare = new BigDecimal(String.valueOf(entry.getValue()));
}
baseMap.put(base,fare);
}
}
return baseMap;
注意的是需要在service层中自己再次处理一下这个map,这样返回值就是一个map中包含了所有值了.