resultType和resultMap都是用于返回多行查询。二者不能一起用。区别在于后者能解决复杂查询时定的映射问题(比如有两个表相关联,此时就要用resultMap了)
在返回多行记录时,mybatis都会把它们自动封装成Map,但是resultType只得到了其中的“值”,而resultMap则得到了对应的“键值”。下面是简单的用法:
1、resultType
xml中:
//此处返回的是JikeUser,即返回了一个对象
<select id="loginJikeUserList" resultType="JikeUser">
select * from JikeUser
</select>
java测试类中
List<JikeUser> ap=sqlSession.selectList("loginJikeUserList");
for(JikeUser temp:ap){
System.out.println("用户名="+temp.getUserName());
}
2、resultMap
xml中
<!-- 先设定一个resultMap -->
<!--此处子节点中,property是JikeUser中的属性,column是数据库中的列名-->
<resultMap type="JikeUser" id="JikeUserMap">
<!--这个id子节点用来声明主键-->
<id property="id" column="id" />
<result property="userName" column="username" />
<result property="passW ord" column="password" />
</resultMap>
<!-- 然后引用已经设定好的resultMap -->
<select id="selectUsers" resultMap="JikeUserMap">
select id,username,password from JikeUser
</select>
java测试中
List<JikeUser> ap=sqlSession.selectList("selectUsers");
for(JikeUser temp:ap){
System.out.println("用户名="+temp.getUserName());
}
emmm关于resultMap的复杂映射以后再写吧QAQ