MyBatis-----4、MyBatis各种查询功能

1、查询一个实体类对象

若查询出的数据只有一条,可以通过实体类对象或者集合接收;
若查询出的数据由多条,一定不能通过实体类对象进行结果的接收,此时会抛出异常,如:TooManyResultsException: Expected one result (or null) to be returned by selectOne(), but found: 5;可以通过List集合进行接收

/*
    * 根据id查询用户信息
    * */
    User GetUserById(@Param("id") Integer id);
    <!--User GetUserById(@Param("id") Integer id);-->
    <select id="GetUserById" resultType="User">
        select * from t_user where id=#{id};
    </select>

2、查询所有用户信息

    /*
    * 查询所有用户信息
    * */
    List<User> GetAllUser();
    <!--    List<User> GetAllUser();-->
    <select id="GetAllUser" resultType="User">
        select * from t_user;
    </select>

3、查询表中数量信息

    /*
    查询用户信息的总记录数
    * */
    Integer getCount();

    <!--    Integer getCount();-->
    <select id="getCount" resultType="Integer">
        select count(*) from t_user;
    </select>

4、根据id查询用户信息返回值为一个Map集合(一条语句)

    /*
    * 根据id查询用户信息返回值为一个Map集合
    * */
    Map<String,Object> getUserInMapById(@Param("id") Integer id);
    <!--Map<String,Object> getUserInMapById(@Param("id") Integer id);-->
    <select id="getUserInMapById" resultType="map">
        select * from t_user where id=#{id};
    </select>

以查询id=3为例,其输出的结果为map集合:
{password=123456, sex=?, id=3, age=23, email=12345@qq.com, username=admin}

4、查询多条数据为一个map集合

以查询所有用户信息为map集合为例:
一条数据视为一个map集合,通过list嵌套map集合实现多条数据的查询,如下:

    /*
    * 查询所有用户信息为map集合,一个表中会有多条数据,一个map集合对应一条数据,因此还需将所有map集合放在list集合中
    * */
    List<Map<String,Object>> getAllUserInMap();
    <!--Map<String,Object> getAllUserInMap();-->
    <select id="getAllUserInMap" resultType="map">
        select * from t_user;
    </select>

使用@Mapkey注解进行标识,在mapper接口的方法上添加@Mapkey注解,此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中

    /*
    * 查询所有用户信息为map集合,一个表中会有多条数据,一个map集合对应一条数据,因此还需将所有map集合放在list集合中
    * */
//    List<Map<String,Object>> getAllUserInMap();
    @MapKey("id")
    Map<String,Object> getAllUserInMap();
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值