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

相关文章

  • 最详细的文件上传下载实例详解(推荐)

    最详细的文件上传下载实例详解(推荐)

    在Web应用系统开发中,文件上传和下载功能是非常常用的功能,今天来讲一下JavaWeb中的文件上传和下载功能的实现。非常不错,具有参考借鉴价值,感兴趣的朋友一起看下吧
    2016-07-07
  • Java零基础教程之Windows下安装、启动Tomcat服务器方法图解(免安装版)

    Java零基础教程之Windows下安装、启动Tomcat服务器方法图解(免安装版)

    这篇文章主要介绍了Windows系统下安装、启动、注册服务、停止 Tomcat操作的所有方法,本文通过图文并茂的方式给大家介绍的非常详细,感兴趣的朋友一起看看吧
    2016-09-09
  • 浅谈Springboot实现拦截器的两种方式

    浅谈Springboot实现拦截器的两种方式

    本文详细的介绍了Springboot拦截器的两种方式实现,一种就是用拦截器,一种就是过滤器,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 5个步骤让你明白多线程和线程安全

    5个步骤让你明白多线程和线程安全

    本文详细讲解了多线程和线程安全的实现,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • JAVA面向对象之继承 super入门解析

    JAVA面向对象之继承 super入门解析

    在JAVA类中使用super来引用父类的成分,用this来引用当前对象,如果一个类从另外一个类继承,我们new这个子类的实例对象的时候,这个子类对象里面会有一个父类对象。怎么引用里面的父类对象呢?用super来引用,this指当前对象的引用,super是当前对象里面的父对象的引用
    2022-01-01
  • java实现在pdf模板的指定位置插入图片

    java实现在pdf模板的指定位置插入图片

    这篇文章主要为大家详细介绍了java如何实现在pdf模板的指定位置插入图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-10-10
  • 如何用Java注解和反射实现依赖注入

    如何用Java注解和反射实现依赖注入

    这篇文章主要介绍了如何用Java注解和反射实现依赖注入,对依赖注入感兴趣的同学,可以实验一下
    2021-05-05
  • Java生产者消费者模式实例分析

    Java生产者消费者模式实例分析

    这篇文章主要介绍了Java生产者消费者模式,结合实例形式分析了java生产者消费者模式的相关组成、原理及实现方法,需要的朋友可以参考下
    2019-03-03
  • mybatis-plus 处理大数据插入太慢的解决

    mybatis-plus 处理大数据插入太慢的解决

    这篇文章主要介绍了mybatis-plus 处理大数据插入太慢的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12
  • 关于String转Json的几种方式

    关于String转Json的几种方式

    这篇文章主要介绍了关于String转Json的几种方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12

最新评论