Mybatis07-Mybatis的各种查询功能

2024-02-29 23:32

本文主要是介绍Mybatis07-Mybatis的各种查询功能,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Mybatis07-Mybatis的各种查询功能

  • 1、查询一个实体对象
    • 1.1、mapper接口中的方法
    • 1.2、mapper接口映射文件
    • 1.3、测试方法及其对应输出
  • 2、查询一个List集合
    • 2.1、mapper接口中的方法
    • 2.2、mapper接口映射文件
    • 2.3、测试方法及其对应输出
  • 3、查询单个数据
    • 3.1、mapper接口中的方法
    • 3.2、mapper接口映射文件
    • 3.3、测试方法及其对应输出
  • 4、查询一条数据为map集合
    • 4.1、mapper接口中的方法
    • 4.2、mapper接口映射文件
    • 4.3、测试方法及其对应输出
  • 5、查询多条数据为map集合
    • 5.1、mapper接口中的方法
    • 5.2、mapper接口映射文件
    • 5.3、测试方法及其对应输出
  • 6、总结
    • 6.1、若查询出的数据只有一条
    • 6.2、若查询出的数据有多条
    • 6.3、Mybatis中的默认类型别名

1、查询一个实体对象

1.1、mapper接口中的方法

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

1.2、mapper接口映射文件

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

1.3、测试方法及其对应输出

  • 测试方法
@Test
public void testGetUserById() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getUserById(3));
}
  • 结果
    在这里插入图片描述

2、查询一个List集合

2.1、mapper接口中的方法

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

2.2、mapper接口映射文件

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

2.3、测试方法及其对应输出

@Test
public void testGetAllUser() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getAllUser());
}

3、查询单个数据

3.1、mapper接口中的方法

/*** 查询用户的总记录数*/
Integer getUserCount();

3.2、mapper接口映射文件

<!-- Integer getUserCount(); -->
<!--    <select id="getUserCount" resultType="int">-->
<!--    <select id="getUserCount" resultType="java.lang.Integer">-->
<!--    <select id="getUserCount" resultType="Int">-->
<select id="getUserCount" resultType="Integer">select count(*) from mybatis.user
</select>

3.3、测试方法及其对应输出

  • 测试代码
@Test
public void testGetUserCount() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getUserCount());
}
  • 结果
    在这里插入图片描述

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

4.1、mapper接口中的方法

 /*** 根据id查询用户信息为一个map集合*/Map<String, Object> getUserByIdToMap(@Param("id") Integer id);

4.2、mapper接口映射文件

<!-- Map<String, Object> getUserByIdToMap(@Param("id") Integer id); -->
<select id="getUserByIdToMap" resultType="map">select * from mybatis.user where id = #{id}
</select>

4.3、测试方法及其对应输出

  • 测试代码
@Test
public void testGetUserByIdToMap() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getUserByIdToMap(3));
}
  • 结果
    在这里插入图片描述

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

5.1、mapper接口中的方法

/*** 查询所有用户信息为map集合*/
//List<Map<String, Object>> getAllUserByIdToMap();
@MapKey("id")
Map<String, Object> getAllUserByIdToMap();

5.2、mapper接口映射文件

<!-- Map<String, Object> getAllUserByIdToMap(); -->
<select id="getAllUserByIdToMap" resultType="map">select * from mybatis.user
</select>

5.3、测试方法及其对应输出

  • 测试代码
@Test
public void testGetAllUserByIdToMap() {SqlSession sqlSession = SqlSessionUtils.getSqlSession();SelectMapper selectMapper = sqlSession.getMapper(SelectMapper.class);System.out.println(selectMapper.getAllUserByIdToMap());
}
  • 结果
    在这里插入图片描述

6、总结

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

  1. 可以通过实体类对象接收
  2. 可以通过List集合接收
  3. 可以通过map集合接收
  • map集合接收的结果:{password=123, sex=男, id=3, age=23, username=sweet}

6.2、若查询出的数据有多条

  1. 可以通过实体类类型的list集合接收
  2. 可以通过map类型的list集合接收
  3. 可以在mapper接口的方法上添加@MapKey注解,此时就可以将每条数据转换的map集合作为值,以某个字段的值作为键,放在同一个map集合中
  4. 注意:一定不能通过实体类对象接收,此时会抛出异常TooManyResultsException

6.3、Mybatis中的默认类型别名

AliasMapped Type
_bytebyte
_longlong
_shortshort
_intint
_integerint
_doubledouble
_floatfloat
_booleanboolean
stringString
byteByte
longLong
shortShort
intInteger
integerInteger
doubleDouble
floatFloat
booleanBoolean
dateDate
decimalBigDecimal
bigdecimalBigDecimal
objectObject
mapMap
hashmapHashMap
listList
arraylistArrayList
collectionCollection
iteratorIterator

示例:

<!-- Integer getUserCount(); -->
<!--    <select id="getUserCount" resultType="int">-->
<!--    <select id="getUserCount" resultType="java.lang.Integer">-->
<!--    <select id="getUserCount" resultType="Int">-->
<select id="getUserCount" resultType="Integer">select count(*) from mybatis.user
</select>

这篇关于Mybatis07-Mybatis的各种查询功能的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/760465

相关文章

mybatis和mybatis-plus设置值为null不起作用问题及解决

《mybatis和mybatis-plus设置值为null不起作用问题及解决》Mybatis-Plus的FieldStrategy主要用于控制新增、更新和查询时对空值的处理策略,通过配置不同的策略类型... 目录MyBATis-plusFieldStrategy作用FieldStrategy类型每种策略的作

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤

《SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤》本文主要介绍了SpringBoot+MyBatis-Flex配置ProxySQL的实现步骤,文中通过示例代码介绍的非常详... 目录 目标 步骤 1:确保 ProxySQL 和 mysql 主从同步已正确配置ProxySQL 的

MyBatis-Flex BaseMapper的接口基本用法小结

《MyBatis-FlexBaseMapper的接口基本用法小结》本文主要介绍了MyBatis-FlexBaseMapper的接口基本用法小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具... 目录MyBATis-Flex简单介绍特性基础方法INSERT① insert② insertSelec

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu

SpringBoot整合DeepSeek实现AI对话功能

《SpringBoot整合DeepSeek实现AI对话功能》本文介绍了如何在SpringBoot项目中整合DeepSeekAPI和本地私有化部署DeepSeekR1模型,通过SpringAI框架简化了... 目录Spring AI版本依赖整合DeepSeek API key整合本地化部署的DeepSeek

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

css实现图片旋转功能

《css实现图片旋转功能》:本文主要介绍了四种CSS变换效果:图片旋转90度、水平翻转、垂直翻转,并附带了相应的代码示例,详细内容请阅读本文,希望能对你有所帮助... 一 css实现图片旋转90度.icon{ -moz-transform:rotate(-90deg); -webkit-transfo

MYSQL关联关系查询方式

《MYSQL关联关系查询方式》文章详细介绍了MySQL中如何使用内连接和左外连接进行表的关联查询,并展示了如何选择列和使用别名,文章还提供了一些关于查询优化的建议,并鼓励读者参考和支持脚本之家... 目录mysql关联关系查询关联关系查询这个查询做了以下几件事MySQL自关联查询总结MYSQL关联关系查询