概述
- 如果查询出的数据只有一条,可以通过
- 实体类对象接收
- List集合接收
- Map集合接收,结果
{password=123456, sex=男, id=1, age=23, username=admin}
- 如果查询出的数据有多条,一定不能用实体类对象接收,会抛异常TooManyResultsException,可以通过
5. 实体类类型的List集合接收
6. Map类型的List集合接收
查询一个实体类对象
- Mapper.java
User getUserById(@Param("id") Integer id);
- Mapper.xml
<!-- User getUserById(@Param("id") Integer id);-->
<select id="getUserById" resultType="User">
select * from t_user where id = #{id}
</select>
查询一个List集合
- Mapper.java
List<User> getAllUser();
- Mapper.xml
<!-- List<User> getAllUser();-->
<select id="getAllUser" resultType="User">
select * from t_user
</select>
查询返回单个数据
- Mapper.java
Integer getUserCount();
-
Mapper.xml
在MyBatis中,对于Java中常用的类型都设置了类型别名
- 例如:java.lang.Integer–>int|integer
- 例如:int–>_int|_integer
- 例如:Map–>map,List–>list
<!-- Integer getUserCount();-->
<select id="getUserCount" resultType="int">
select count(*) from t_user;
</select>
查询一条数据为map集合
<!-- Map<String, Object> getUserToMap(@Param("id") Integer id);-->
<select id="getUserToMap" resultType="map">
select * from t_user where id = #{id}
</select>
查询多条数据为map集合
方法一
- 一行记录为一个map, 返回List<Map<>>
<!-- List<Map<String, Object>> getAllUserToMap();-->
<select id="getAllUserToMap" resultType="map">
select * from t_user
</select>
[{password=123, sex=女, id=9, age=23, username=张三}, {password=123, sex=男, id=10, age=18, username=李四}, {password=123, sex=男, id=11, age=20, username=李白}, {password=123, sex=男, id=12, age=20, username=李牧}]
方法二
- 指定属性作为键,属性键值对为值
- 返回Map<Map<>>
@MapKey("id")
Map<String, Object> getAllUserToMap2();
<!-- Map<String, Object> getAllUserToMap2();-->
<select id="getAllUserToMap2" resultType="map">
select * from t_user
</select>
{9={password=123, sex=女, id=9, age=23, username=张三}, 10={password=123, sex=男, id=10, age=18, username=李四}, 11={password=123, sex=男, id=11, age=20, username=李白}, 12={password=123, sex=男, id=12, age=20, username=李牧}}