MyBatis的各种查询功能结果接收类型的选择(推荐)

 更新时间:2024年11月21日 11:06:37   作者:雷神乐乐  
文章介绍了MyBatis中查询结果的不同接收方式,包括单条数据和多条数据的处理方法,以及MyBatis的默认类型别名,感兴趣的朋友跟随小编一起看看吧

一、若查询出的数据只有一条

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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java基础巩固系列包装类代码实例

    Java基础巩固系列包装类代码实例

    这篇文章主要介绍了Java包装类,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • Java基础学习之接口详解

    Java基础学习之接口详解

    接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么接口的内部主要就是封装了方法。本文通过一些示例详细为大家展示了接口的使用,需要的可以参考一下
    2022-10-10
  • Java编程中利用InetAddress类确定特殊IP地址的方法

    Java编程中利用InetAddress类确定特殊IP地址的方法

    这篇文章主要介绍了Java编程中利用InetAddress类确定特殊IP地址的方法,InetAddress类是Java网络编程中一个相当实用的类,需要的朋友可以参考下
    2015-11-11
  • Java实现银行账户管理子系统

    Java实现银行账户管理子系统

    这篇文章主要为大家详细介绍了Java实现银行账户管理子系统,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-05-05
  • 在Java下利用log4j记录日志的方法

    在Java下利用log4j记录日志的方法

    本文先对log4j进行了简短的介绍,而后通过安装、配置和普通项目和web项目几个方面来详细介绍了在Java下利用log4j记录日志的方法,有需要的朋友们可以参考借鉴。
    2016-09-09
  • Jmeter逻辑控制器事务控制器使用方法解析

    Jmeter逻辑控制器事务控制器使用方法解析

    这篇文章主要介绍了Jmeter逻辑控制器事务控制器使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Spring Boot整合QueryDSL的实现示例

    Spring Boot整合QueryDSL的实现示例

    这篇文章主要介绍了Spring Boot整合QueryDSL的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • Java线程之程安全与不安全代码示例

    Java线程之程安全与不安全代码示例

    这篇文章主要介绍了Java线程之程安全与不安全代码示例,还是比较不错的,这里分享给大家,供需要的朋友参考。
    2017-11-11
  • Java设计模式之责任链模式

    Java设计模式之责任链模式

    今天小编就为大家分享一篇关于Java设计模式之责任链模式,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • Mybatis-plus通过添加拦截器实现简单数据权限

    Mybatis-plus通过添加拦截器实现简单数据权限

    系统需要根据用户所属的公司,来做一下数据权限控制,具体一点,就是通过表中的company_id进行权限控制,项目使用的是mybatis-plus,所以通过添加拦截器的方式,修改查询sql,实现数据权限,本文就通过代码给大家详细的讲解一下,需要的朋友可以参考下
    2023-08-08

最新评论