mybatis查询功能

预设的类型别名

这些别名都大小写不敏感

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>

posted on 2022-08-20 12:52  老菜农  阅读(56)  评论(0编辑  收藏  举报

导航