• MyBatis中的collection两种常用使用方法(非常详细)


    MyBatis中的collection两种常用使用方法

    码云MybatisDemo: 用来学习springboot整合mybatis (gitee.com)

    collection主要是应对表关系是一对多的情况

    查询的时候,用到联表去查询

    接下来的小案例包括:市,学校,医院(随便写的),写一个最简单的demo

    主要的功能就是查询出所有的市以及对应的市下面所有的学校和医院

    实体类:医院

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Hospital {
        private int id;                 //医院编号
        private int urbanId;            //市的编号
        private String hospitalName;    //医院名称
        private Long people;            //医院人数
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    实体类:学校

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class School {
        private int id;               //学校编号
        private int urbanId;          //市的编号
        private String schoolName;    //学校名字
        private Long people;          //学校人数
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    实体类:市

    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public class Urban {
        private int id;                   //市的编号
        private String cityId;            //省的编号(此博文没用到)
        private String urbanName;         //城市名字
        private List schools;     //对应的所有的学校
        private List hospitals; //对应的所有的医院
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    第一种方式,采用select

    首先我们要在学校和医院接口对应的xml中写出按照市的编号来查询出所有数据的xml

    xml:医院

    
    
    
        
    
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    xml:学校

    
    
    
        
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    接下来就是在的xml中对学校和医院的xml进行一个调用(用collection中select)

    
    
    
    	  
            
            
            
            
        
    
    		
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26

    第二种方式,执行一次sql

    
    
    
    		
            
            
            
    
            
                
                
                
                
            
    
            
                
                
                
                
            
        
    		
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44

    接下来就可以写两个接口来测试这两个xml配置是否正确,具体的代码在最上面的码云地址里,大家可以配合swagger进行测试。提供一个springboot整合swagger3的一个小教程springboot整合swagger3

  • 相关阅读:
    人工智能、深度学习、机器学习书目推荐
    Remove和RemoveLast用法
    突破编程_C++_高级教程(正则表达式编程实例)
    理解HMM算法
    flask使用Flask-Mail实现邮件发送
    Vue中引入echarts的步骤
    IDEA插件开发(24)--使用图标和图像
    Rust中打印语句为什么使用宏实现?
    用纯RUST实现音视频流媒体服务(RTMP/HTTPFLV/HLS)XIU
    喜讯 | 怿星科技获评SAE“优秀核心零部件企业”,测试软件平台工具广受赞誉
  • 原文地址:https://blog.csdn.net/m0_67390379/article/details/126035217