标签:name resultMap resultType 类型 属性 id select HashMap
.1)resultType
(1)简单类型(8个基本类型加String)
(2)输出类型为实体对象类型
(3) 输出参数为实体对象类型的集合 :虽然输出类型为集合,但是resultType依然写 集合的元素类型 (resultType="student")
(4)输出参数为HashMap
<!-- 别名作为Map的key--> <select id="queryStudentOutHashMap" resultType="HashMap" parameterType="int"> select stuName "name",stuAge "age" from student where stuno=#{xx} </select>
--HashMap本身就是一个集合,可以存放多个元素,
但是根据提示发现 返回值为HashMap的时候,查询的结果只能是一个学生(no,name);
结论---》:一个HashMap对应一个学生的多个元素(多个属性) (一个map一个学生)
如果非要改成输出为多个学生 改进如下:
<!-- 查询返回值为集合map--> <select id="queryAllStudentOutHashMap" resultType="HashMap"> select stuName "name",stuAge "age" from student </select>
/** * 查询所有学生并且返回值为Map集合 * @return */ List<Map<String ,Object>> queryAllStudentOutHashMap();
public static void queryAllStudentOutHashMap() throws IOException { Reader reader = Resources.getResourceAsReader("config.xml"); SqlSessionFactory sessionFactory=new SqlSessionFactoryBuilder().build(reader); SqlSession session=sessionFactory.openSession(); IStudentDao iStudentDao=session.getMapper(IStudentDao.class); List<Map<String, Object>> map = iStudentDao.queryAllStudentOutHashMap(); System.out.println(map); session.close(); reader.close(); }
.2)resultMap
(1)实体类的属性表中的字段:类型,名字不同时(stuno,id)
注意:当属姓名和字段名不一致时,除了resultMap以外,还可以使用resultType+HashMap
1.resultMap处理属性和字段不一致
<!-- 使用resultMap返回--> <select id="queryAllStudentByidMap" resultMap="queryAllStudentByidMaps" parameterType="int"> select id,name from student where id=#{xx} </select> <resultMap id="queryAllStudentByidMaps" type="student"> <id property="stuNo" column="id"></id> <result property="stuName" column="name"></result> </resultMap>
2.resultType处理属性和字段名不一致
<!--使用resultType返回--> <select id="queryAllStudentByidWithType" resultType="student" parameterType="int"> select id "stuNo",name "stuName" from student where id=#{xx} </select>
select 表中的字段名 “类中的属性名” from ...来指定属性名和字段名的关系
注意:如果10个字段 ,但发现 某一个属性结果始终为默认值(0,0.0,null) ,则可能是表的字段和类的属性 名字写错了
标签:name,resultMap,resultType,类型,属性,id,select,HashMap 来源: https://www.cnblogs.com/thisHBZ/p/12455241.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。