预设的类型别名
这些别名都大小写不敏感
Mybatis的各种查询功能
查询出的数据只有一条:
-
可以通过实体类对象接收
-
可以通过List接收
-
可以通过Map接收
查询出的数据有多条:
-
可以通过Lst接收
-
可以通过
Lsit<Map<String, Object>>
接收 -
在mapper方法上使用@MapKey(value="唯一认证的字段")注解
查询(mapper里的方法返回)一个实体类对象
若查询到的只有一条,可以实体类对象接收,但是如果可能有多条,就不能用实体类对象了。会抛异常TooManyResultsException
User selectForOne(@Param("id")Integer id);
<select id="selectForOne" resultType="User">
select * from t_user where id = #{id}
</select>
查询一个List集合
查询出的数据有多条或者只有一条,都可以用List集合接收
List<User> selectAll();
<select id="selectAll" resultType="User">
select * from t_user
</select>
查询单行/单列
MyBatis中设置了默认的类型别名
Integer selectCount();
<select id="selectCount" resultType="Integer">
select count(*) from t_user
</select>
查询一条数据返回一个Map集合
结果:{字段名=字段值,字段名=字段值}
Map<String, Object> selectUserMapById(@Param("id")Integer id);
<select id="selectUserMapById" resultType="Map">
select * from t_user where id = #{id};
</select>
查询多条数据
使用List<Map<>>
List<Map<String, Object>> selectAllUserListMap();
<select id="selectAllUserListMap" resultType="Map">
select * from t_user
</select>
使用@Map注解
在mapper方法上使用@MapKey(value="唯一认证的字段"),此时就可以将每条数据转换的map集合作为值,某个字段的值作为键
@MapKey("id")
Map<String, Object> selectAllUserMap();
<select id="selectAllUserMap" resultType="Map">
select * from t_user
</select>