Mybatis返回结果时发生的类型转换异常

来源:互联网 发布:java hdfs框架 编辑:程序博客网 时间:2024/04/30 20:51

错误提示:java.lang.ClassCastException: java.util.ArrayList cannot be cast to 。。。。。

因为查询结果返回的是Map结合,在Service层直接强转背会发生上述错误

解决方式:使用List集合接受数据,之后通过for循环强转类型

在mapper.xml文件中

<select id="findModule" parameterType="hashmap" resultMap="moduleResultMap">
SELECT
<include refid="Field"></include>
FROM
<include refid="tableName"></include>
WHERE yemian_id=#{yemian_id}
AND mokuai_id=#{mokuai_id}
</select>


Dao层

public List<Object> findModule(Map<String,String> paramMap)throws Exception;

DaoImp层

public List<Object> findModule(Map<String,String> paramMap) throws Exception {
return sqlSessionTemplate.selectList("findModule",paramMap);
}


Service层

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.annotation.Resource;
import org.springframework.stereotype.Service;
import com.zhd.dao.DaoSupport;
import com.zhd.entity.Module;
import com.zhd.service.ModuleManager;

@Service(value="moduleService")
public class ModuleService implements ModuleManager{
@Resource
private DaoSupport dao;

public List<Module> findModule(String yemian_id, String mokuai_id) throws Exception {
Map<String,String> paramMap=new HashMap<String,String>();
paramMap.put("yemian_id",yemian_id);
paramMap.put("mokuai_id", mokuai_id);

//Object obj=dao.findModule(paramMap);
//Module module=(Module)obj;
//return module;

List<Object> objs=dao.findModule(paramMap);
List<Module> modules=new ArrayList<Module>();
for(Object obj:objs){
Module module=(Module)obj;
modules.add(module);
}
return modules;
}
}




0 0
原创粉丝点击