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

MyBatis高级映射

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

MyBatis高级映射

resultMap元素

resultMap 元素有很多子元素和一个值得深入探讨的结构。 下面是resultMap 元素的概念视图。

constructor - 用于在实例化类时,注入结果到构造方法中

idArg - ID 参数;标记出作为 ID 的结果可以帮助提高整体性能arg - 将被注入到构造方法的一个普通结果 id – 一个 ID 结果;标记出作为 ID 的结果可以帮助提高整体性能result – 注入到字段或 JavaBean 属性的普通结果association – 一个复杂类型的关联;许多结果将包装成这种类型

嵌套结果映射 – 关联可以是 resultMap 元素,或是对其它结果映射的引用 collection – 一个复杂类型的集合

嵌套结果映射 – 集合可以是 resultMap 元素,或是对其它结果映射的引用 discriminator– 使用结果值来决定使用哪个 resultMap

case – 基于某些值的结果映射

嵌套结果映射 – case 也是一个结果映射,因此具有相同的结构和元素;或者引用其它的结果映射 一对一

案例: 查询用户所属部门

pojo
public class User {

    public User() {}

    
    private Integer userId;
    
    private String username;

    
    private Integer deptId;

    
    private Dept dept;

	//省略get set toString
}

public class Dept {
	
    public Dept() {}
    
    //部门id
    private Integer deptId;

    //部门名称
    private String deptName;

    //父级id
    private Integer parentId;
	
    //省略get set toString   
}
dao
User findById(@Param("userId") Integer userId);
xml

    
    
    
        
        
        
    



    select t.user_id, t.username, t2.dept_id, t2.dept_name, t2.parent_id
    from t_user t
    inner join t_dept t2 on t.user_id = t2.dept_id
    where t.user_id = #{userId}

一对多

案例:查询当前部门的用户

pojo

跟一对一实体差不多,就是我们需要在Dept部门实体类中,定义一个用户集合

//用户集合属性
List users;
dao
Dept findById(@Param("deptId") Integer deptId);
xml

    
    
    
    
        
        
        
    


多对多

多对多是一对多的特例,比如用户和角色

public class User{
    //1个用户多个角色
	List roles;
}
public class Role{
    //1个角色被多个用户使用
    List users;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/719606.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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