springboot整合mybatis实现简单的一对多级联查询功能

 更新时间:2021年08月23日 11:02:53   作者:qq_42212926  
这篇文章主要介绍了springboot整合mybatis实现简单的一对多级联查询功能,分步骤通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

本文的目的是用springboot整合mybatis实现一个简单的一对多查询。(查询一个用户有多少件衣服)

第一步:数据库中,可以直接在navicat中建立两张我们需要用到的表

users

DROP TABLE IF EXISTS `users`;
CREATE TABLE `users`  (
  `id` int(0) NOT NULL AUTO_INCREMENT,
  `name` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `county` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `age` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `date` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 3 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

DROP TABLE IF EXISTS `clothes`;
CREATE TABLE `clothes`  (
  `clothe_id` int(0) NOT NULL,
  `clothe_color` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_0900_ai_ci NULL DEFAULT NULL,
  `user_id` int(0) NULL DEFAULT NULL,
  PRIMARY KEY (`clothe_id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_0900_ai_ci ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

然后自己随便往里面造两条数据就可以了,我这里如下图所示

第二步:

接着就是在实体类下面对建立两个类,类中属性对应表中的字段建立即可,如果有mybatis的代码生成工具的话,可以自己一键生成,就不用写POJO,Mapper,Mapper.xml代码了。

 因为我们这里的一对多的查询是查询一个用户有多少件衣服的一对多,所以在用户实体类中我们加上了List<Clothe>这个私有属性,是用来接收clothe这个实体类。

第三步:Mapper文件

因为我们这里只是对uesrMapper这个接口操作,所以我只给出UserMapper

 这个接口声明了一个oneToMoreQuery的方法,参数为用户ID,返回的结果是一个列表,列表里面是用户实体类。

第四步:也是最重要的一步,写mybatis的xml文件

 在xml文件中要注意有如下几点:

collection:因为我们在user实体类中加的是List<User>所以这里用的是collection,如果我们在User这个实体类中的加的是单个实体类,就用association。

property:这里的属性名一定要和我们前面实体类中定义的是一样的,上面实体类截图中,我已经标箭头的部分。

下面<select>标签中就是一个简单的查询,然后后面的resultMap用的就是我们上面定义的resultMap;

第五步:编写一个服务类

 按照企业级的开发流程中,这里是应该现有一个service接口,然后在实现类的,这里为了省事,直接实现类了。

第六步:写一个controller(Usercontroller)

因为我用的是postman测试的,所以这里要有一个controller

 第七步:通过postman测试验证结果是否正确

因为这里方法中就是一个整型的参数,所以在postman中就直接传一个整型的id,值为1,

最后出来的结果是:

[

    {

        "id": 1,

        "name": "zdz",

        "county": "sr",

        "age": "21",

        "date": "20210821",

        "clothes": [

            {

                "clotheId": 1,

                "clotheColor": "绿色",

                "userId": null

            },

            {

                "clotheId": 2,

                "clotheColor": "红色",

                "userId": null

            }

        ]

    }

]

回看表里面用户Id为一的用户在clothe表里面对应两条数据,然后同时还把user表中的信息全部查询出来了。一个简单的一对多的级联查询就完成了。

到此这篇关于springboot整合mybatis实现简单的一对多级联查询功能的文章就介绍到这了,更多相关springboot整合mybatis一对多级联查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Shiro与Springboot整合开发的基本步骤过程详解

    Shiro与Springboot整合开发的基本步骤过程详解

    这篇文章主要介绍了Shiro与Springboot整合开发的基本步骤,本文结合实例代码给大家介绍整合过程,感兴趣的朋友跟随小编一起看看吧
    2023-06-06
  • 关于Java应用日志与Jaeger的trace关联的问题

    关于Java应用日志与Jaeger的trace关联的问题

    这篇文章主要介绍了Java应用日志如何与Jaeger的trace关联,通过jaeger发现这十次请求中有一次耗时特别长,想定位一下具体原因,感兴趣的朋友跟随小编一起看看吧
    2022-01-01
  • SpringBoot项目中集成Apollo的方法步骤

    SpringBoot项目中集成Apollo的方法步骤

    本文主要介绍了SpringBoot项目中集成Apollo的方法步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • 带你了解JAVA中的一些锁概念

    带你了解JAVA中的一些锁概念

    今天小编就为大家分享一篇关于Java分布式锁的概念与实现方式详解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2021-08-08
  • Java 中Json中既有对象又有数组的参数如何转化成对象(推荐)

    Java 中Json中既有对象又有数组的参数如何转化成对象(推荐)

    Gson库是一个功能强大、易于使用的Java序列化/反序列化库,它提供了丰富的API来支持Java对象和JSON之间的转换,这篇文章主要介绍了Java 中Json中既有对象又有数组的参数如何转化成对象,需要的朋友可以参考下
    2024-07-07
  • 深入浅析springboot中static和templates区别

    深入浅析springboot中static和templates区别

    这篇文章主要介绍了springboot中static和templates区别,本文通过图文实例代码相结合给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-02-02
  • SpringBoot实现异步消息处理的代码示例

    SpringBoot实现异步消息处理的代码示例

    在现代应用程序中,异步消息处理是一项至关重要的任务。它可以提高应用程序的性能、可伸缩性和可靠性,同时也可以提供更好的用户体验,本文将介绍如何使用Spring Boot实现异步消息处理,并提供相应的代码示例
    2023-06-06
  • java el简介及用法

    java el简介及用法

    EL简介语法结构 运算符等资料代码。
    2009-04-04
  • 消息队列MQ使用详解

    消息队列MQ使用详解

    消息队列(MQ)是一种基于“先进先出”原则的数据结构,广泛应用于分布式系统中,主要用于应用解耦、异步消息处理和流量削峰,消息队列中间件通过允许生产者发送消息到队列,消费者从队列中拉取消息或订阅消息,实现高效、可扩展和最终一致性的系统架构
    2024-10-10
  • java实现拼图小游戏

    java实现拼图小游戏

    这篇文章主要为大家详细介绍了java实现拼图小游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-02-02

最新评论