一、若查询出的数据只有一条
1.可以通过实体类对象接收
user getuserbyid(@param("id") integer id);
<select id="getuserbyid" resulttype="user"> select * from t_user where id = #{id}; </select>
2.可以通过list集合接收
list<user> getuserbyid(@param("id") integer id);
3.可以通过map集合接收
map<string, object> getuserbyidtomap(@param("id") integer id);
<select id="getuserbyidtomap" resulttype="java.util.map"> select * from t_user where id = #{id}; </select>
结果:{password=123456, sex=男, id=3, age=23, email=12345@qq.com, username=admin}
二、若查询出的数据有多条
1.可以通过实体类类型的list集合接收
list<user> getalluser();
<select id="getalluser" resulttype="user"> select * from t_user; </select>
2.可以通过map类型的list集合接收
list<map<string, object>> getusersbyidtomap(@param("id") integer id);
<select id="getusersbyidtomap" resulttype="java.util.map"> select * from t_user where id = #{id}; </select>
@test public void testgetusersbyidtomap() { sqlsession sqlsession = sqlsessionutils.getsqlsession(); selectmapper mapper = sqlsession.getmapper(selectmapper.class); list<map<string, object>> users = mapper.getusersbyidtomap(6); users.foreach(system.out::println); // {password=789789, sex=男, id=6, age=25, email=456123@qq.com, username=李四} }
3.可以在mapper接口的方法上添加@mapkey注解
@mapkey("id") map<string, object> getallusertomap();
此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中
注意:一定不能通过实体类对象接收,此时会抛异常toomanyresultsexception
mybatis中设置了默认的类型别名:
- java.lang.integer-->int,integer
- int-->_int,_integer
- map-->map
- string-->string
到此这篇关于mybatis的各种查询功能,结果接收类型的选择的文章就介绍到这了,更多相关mybatis内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论