java ibatis 返回List<HashMap<String,String>> 的数据读取问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java ibatis 返回List<HashMap<String,String>> 的数据读取问题相关的知识,希望对你有一定的参考价值。
我SQL查询直接返回List<HashMap<String,String>> result
代码如下:
public ArrayList<HashMap<String, String>> selectToMap()
return (ArrayList<HashMap<String,String>>)getSqlMapClientTemplate()
.queryForList("advertising.selectToMap");
result是返回的数据集(读取的result里面有值)
在数据库中两个字段 id ,name
id 是 Integer
name 是 varchar
但是然后我读取时
for(HashMap<String,String> item:result)
System.out.println(item.get("id")); //id是字符名id字段是int所以这样输出就出错,提示不能把整型转化成Stirng
System.out.println(item.get("name")); //这样就不会出错,因为name字段在数据库里是varchar类型.
我想问的是HashMap 不是已经指出键和值都是String了吗?为什么还提示无法转换??
别外我如何读取键为id 的值????
改成Object 然后item.get("id").toString() 这样就可以了,谢谢
本回答被提问者采纳ibatis查询SQL语句返回一个对象,此对象包含一个List属性
可能标题说的不是很明白,具体其实就是:
我需要查询一个用户,但是这个用户拥有多张试卷,所以我将试卷这个对象,作为User对象的一个属性,这个属性为List类型。这样我在SQL查询时直接查询user表返回user对象,此user对象包含一个属性(List<Test>多张试卷)。
java实体类对应关系:
public class Test{ private Integer userID; // 主键ID private String username; // 姓名 private String idCard; // 身份证号 private Integer sex; //性别 private String mobilePhone; // 手机号 private List<Test> propertyList; //List属性 }
ibatis对应XML文件查询代码:
<resultMap id="List_result" class="com.ceshi.user.domain.User"> <result property="userID" column="userID"/> <result property="idCard" column="idCard"/> <result property="username" column="username"/> <result property="mobilePhone" column="mobilePhone"/> <result property="propertyList" column="{userID=userID}" select="getpropertyList"/> </resultMap> <select id="getpropertyList" parameterClass="HashMap" resultClass="com.ceshi.user.domain.User"> SELECT userID ,paperName, GROUP_CONCAT(courseRecomm SEPARATOR \',\') courseRecomm FROM test WHERE userID = #userID# GROUP BY userID,paperName </select> <select id="getList" parameterClass="com.ceshi.user.domain.User" resultMap="List_result"> SELECT a.userID, a.idCard, a.username, CASE a.sex WHEN \'1\' THEN \'女\' ELSE \'男\' END AS sexName, a.mobilePhone, FROM user a <dynamic prepend="WHERE"> <isNotNull prepend="AND" property="userID"> a.userID=#userID# </isNotNull> <isNotNull prepend="AND " property="username"> a.username like\'%$username$%\'</isNotNull> <isNotNull prepend="AND" property="idCard"> a.idCard=#idCard# </isNotNull> </dynamic> ORDER BY a.userID DESC </select>
简单来张图说明一下;
查问卷表拼接用户结果是这样的:同一个人对应多张试卷,查询试卷表结果。
但是我只想查用户表,也返回用户对应的试卷,也就是这样:
记录一下,虽然简单。
以上是关于java ibatis 返回List<HashMap<String,String>> 的数据读取问题的主要内容,如果未能解决你的问题,请参考以下文章