栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Mybatis实现接收包含对象和集合的数据的对象

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Mybatis实现接收包含对象和集合的数据的对象

需求:返回一个班级的基本信息和班主任信息和这个班级的所有的学生信息。

即一个班级对象里面有自身的班级信息,一个班主任的Object信息和一个学生对象的List信息。

创建了三个表

1.班级表t_class

 2.学生表t_student

 3.班主任表t_teacher

 查询的sql是这样的

 我们可以知道,老师和班级是一个对象,三条数据中的老师和班级信息都是一样的,只有学生的信息不同。

在xml代码中的体现如下,property是java实体类的属性名称,column是sql返回的字段名称。

注意:如果property和column的参数一样的话,此result标签可以不写,仅限result标签,id标签不能省略。


        
        
        

        
            
            
            
        

        
            
            
            
        


    

    
	SELECT
	c.*,
	s.id as stuId,
	s.name as stuName,
	s.age,
	tt.`Name` as teacherName,
	tt.age as teacherAge
    FROM
	           t_class c
	LEFT JOIN t_student s ON c.id = s.class_id
	LEFT JOIN t_teacher tt on tt.class_id=c.id
	where  c.id=#{classId}
    

其中,association 标签必须在collection之前(如果两个都有的话),不然会报错,而且javaType必须指定。

最后给大家看看我的三个实体类。

@Data
@Accessors(chain = true)
public class TClass {

    @TableId("id")
    private Long id;

    private String name;

    private String detail;

    @TableField(exist = false)
    private List students;

    @TableField(exist = false)
    private TTeacher teacher;
}
@Data
@Accessors(chain = true)
public class TStudent {

    @TableId("id")
    private Long id;

    private Integer classId;

    private String name;

    private Integer age;


}
@Data
@Accessors(chain = true)
@ApiModel(value="TTeacher对象", description="")
public class TTeacher{

    @TableId("id")
    private Long id;

    private Integer classId;

    private String name;

    private Integer age;


}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/760541.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号