Mybatis各种查询接口使用详解

 更新时间:2022年11月09日 10:49:34   作者:学习使我快乐T  
这篇文章主要介绍了Mybatis各种查询接口使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧

一、查询一个实体类对象

①创建SelectMapper接口

若sql语句查询的结果为多条时,一定不能以实现类类型作为方法的返回值

否则会抛出异常TooManyResultsException

若sql语句查询的结果为1条时,此时可以使用实体类类型或list集合类型作为方法的返回值

    /**
     * 根据id查询用户信息
     * @param id
     * @return
     */
    User getUserById(@Param("id") Integer id);

②创建SelectMapper配置文件

<!--    User getUserById(@Param("id") Integer id);-->
    <select id="getUserById" resultType="User">
        select * from t_user where id = #{id}
    </select>

③创建测试类

    @Test
    public void testGetUserById(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        User user = mapper.getUserById(2);
        System.out.println(user);
        sqlSession.close();
    }

二、查询一个list集合

①创建SelectMapper接口

    /**
     * 查询所有的用户信息
     * @return
     */
    List<User> getAllUser();

②创建SelectMapper配置文件

<!--    List<User> getAllUser();-->
    <select id="getAllUser" resultType="User">
        select * from t_user
    </select>

③创建测试类

    @Test
    public void testGetAllUser(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        List<User> allUser = mapper.getAllUser();
        allUser.forEach(System.out::println);
        sqlSession.close();
    }

三、查询单个数据

①创建SelectMapper接口

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

②创建SelectMapper配置文件

在MyBatis中,对于Java中常用的类型都设置了类型别名

例如: java.lang.Integer -> int/integer

例如: int -> _int/_integer

例如: Map -> map,

例如: List -> list

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

③创建测试类

    @Test
    public void testGetCount(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        Integer count = mapper.getCount();
        System.out.println(count);
        sqlSession.close();
    }

四、查询一个数据为map集合

①创建SelectMapper接口

    /**
     * 根据用户id查询用户信息为map集合
     * @param id
     * @return
     */
    Map<String, Object> getUserToMap(@Param("id") int id);

②创建SelectMapper配置文件

    <!--Map<String, Object> getUserToMap(@Param("id") int id);-->
    <!--结果: {password=123456, sex=男 , id=1, age=23, username=admin}-->
    <select id="getUserToMap" resultType="map">
        select * from t_user where id = #{id}
    </select>

③创建测试类

    @Test
    public void testGetUserToMap(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
        Map<String, Object> userToMap = mapper.getUserToMap(2);
        System.out.println(userToMap);
        sqlSession.close();
    }

五、查询多条数据为map集合

①创建SelectMapper接口

方式一:

    /**
     * 查询所有用户信息为map集合
     * @return
     * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,此
    时可以将这些map放在一个list集合中获取
     */
//    List<Map<String, Object>> getAllUserToMap();

方式二:

    /**
     * 查询所有用户信息为map集合
     * @return
     * 将表中的数据以map集合的方式查询,一条数据对应一个map;若有多条数据,就会产生多个map集合,并
    且最终要以一个map的方式返回数据,此时需要通过@MapKey注解设置map集合的键,值是每条数据所对应的
    map集合
     */
    @MapKey("id")
    Map<String, Object> getAllUserToMap();

②创建SelectMapper配置文件

    <!--Map<String, Object> getAllUserToMap();-->
    <select id="getAllUserToMap" resultType="map">
        select * from t_user
    </select>

③创建测试类

    @Test
    public void testGetAllUserToMap(){
        SqlSession sqlSession = SqlSessionUtil.getSqlSession();
        SelectMapper mapper = sqlSession.getMapper(SelectMapper.class);
//        List<Map<String, Object>> allUserToMap = mapper.getAllUserToMap();
//        allUserToMap.forEach(System.out::println);
        Map<String, Object> allUserToMap = mapper.getAllUserToMap();
        System.out.println(allUserToMap);
        sqlSession.close();
    }

到此这篇关于Mybatis各种查询接口使用详解的文章就介绍到这了,更多相关Mybatis查询接口内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java NIO Channel 使用详情

    Java NIO Channel 使用详情

    这篇文章主要介绍了Java NIO Channel 使用详情,文章围绕主题展开详细内容需要的小伙伴可以参考一下,希望对你的学习有所帮助
    2022-04-04
  • springboot配置文件读取pom文件信息方式

    springboot配置文件读取pom文件信息方式

    这篇文章主要介绍了springboot配置文件读取pom文件信息方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • Java中内存异常StackOverflowError与OutOfMemoryError详解

    Java中内存异常StackOverflowError与OutOfMemoryError详解

    这篇文章主要介绍了 Java中内存异常StackOverflowError与OutOfMemoryError详解的相关资料,需要的朋友可以参考下
    2017-03-03
  • Java异常类型及处理详情

    Java异常类型及处理详情

    这篇文章主要介绍了Java异常类型及处理, 异常指的是程序在执行过程中,出现了非正常情况,导致了java的jvm停止。感兴趣的小伙伴就和小编一起来学习下面文章的具体内容吧
    2021-09-09
  • SpringBoot启动过程的实现

    SpringBoot启动过程的实现

    这篇文章主要介绍了SpringBoot启动过程的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • jar包手动添加到本地maven仓库的步骤详解

    jar包手动添加到本地maven仓库的步骤详解

    在写程序的过程中,有时候会遇到私服里没有需要的jar包的情况,这时候我们就可以手动导入jar包到本地仓库进行使用,下面这篇文章主要给大家介绍了关于jar包手动添加到本地maven仓库的相关资料,需要的朋友可以参考下
    2022-08-08
  • SpringBoot3.2.2整合MyBatis-Plus3.5.5依赖不兼容的问题解决

    SpringBoot3.2.2整合MyBatis-Plus3.5.5依赖不兼容的问题解决

    这篇文章给大家介绍了Spring Boot 3.2.2整合MyBatis-Plus 3.5.5依赖不兼容问题,文中通过代码示例和图文介绍的非常详细,对大家的学习或工作有一定的帮助,需要的朋友可以参考下
    2024-01-01
  • 基于zipoutputStream的简单使用

    基于zipoutputStream的简单使用

    这篇文章主要介绍了基于zipoutputStream的简单使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-12-12
  • Java实现多项式除法的代码示例

    Java实现多项式除法的代码示例

    今天小编就为大家分享一篇关于Java实现多项式除法的代码示例,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Java TokenProcessor令牌校验工具类

    Java TokenProcessor令牌校验工具类

    这篇文章主要介绍了TokenProcessor令牌校验工具类 ,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03

最新评论