Mybatis框架学习_7_嵌套属性查询(级联查询)

Posted 勇气

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mybatis框架学习_7_嵌套属性查询(级联查询)相关的知识,希望对你有一定的参考价值。

1.背景

我们经常会遇到这样的开发场景,将一个类 Class02 作为另一个类 Class01 的属性,此时我们可以通过级联属性进行调用;

2.实例演示 

  • 在我们使用的 person 表中加入 homeaddress(家庭住址)、workaddress(工作地址)两列;我们查询出家庭住址为北京或者工作地址为承德的全部数据;
alter table person add homeaddress varchar(100) comment \'家庭地址\';
alter table person add workaddress varchar(100) comment \'工作地址\';

    此时 person 表如下所示:

 

  •  创建地址实体类Person 和 Address,Address 类里面包含两个属性 homeAddress 和  workAddress,Person类里面包含 Address 属性;

  •  创建 Person 类对应的 PersonMapper.xml 文件和动态代理的接口 PersonMapper;

此时  PersonMapper.xml 配置文件如下:

   <!--级联属性-->
    <select id="selectOrderByValue" resultType="Person" parameterType="Person">
        SELECT * FROM person where homeaddress = #{address.homeaddress} or workaddress=#{address.workaddress}
    </select>
  • 编写测试类后,运行结果为:

 

 

但是请注意:此时如果打印的话是无法显示出 homeaddress 和 workaddress 的信息的,因为 Person 实体类中没有这两个属性;

 

以上是关于Mybatis框架学习_7_嵌套属性查询(级联查询)的主要内容,如果未能解决你的问题,请参考以下文章

MyBatis学习总结_13_Mybatis查询之resultMap和resultType区别

mybatis怎么有条件的级联查询????

MyBatis框架关联映射

mybatis的嵌套查询与嵌套结果查询的不同

阶段3 1.Mybatis_12.Mybatis注解开发_7 Mybatis注解开发一对多的查询配置

Hibernate框架学习3