MyBatis嵌套查询和嵌套结果区别以及一对一、一对多、多对多的映射实现...

发布网友 发布时间:2天前

我来回答

1个回答

热心网友 时间:2分钟前

嵌套查询与嵌套结果在MyBatis中的区别主要体现在执行数据库查询的次数上。嵌套查询是针对关联的嵌套查询,会得到一个结果集,然后根据每条记录执行关联查询。这意味着,如果查询结果集返回N条记录,关联查询将会执行N次,再加上自身返回结果集查询1次,总共需要访问数据库N+1次。这种情况下,如果N的值较大,数据库访问的消耗将会非常显著,从而可能影响性能。

相比之下,嵌套结果则是MyBatis处理一对多、多对多以及多对一查询的方式。它通过联合查询,一次性从数据库中获取所有结果,然后根据一对一、一对多、多对多的关系,结合ResultMap中的配置,对结果进行转换。

在实现一对一、一对多、多对多的映射时,有以下规则:

● 一对一:在任意一方引入对方主键作为外键;

● 一对多:在“多”的一方,添加“一”的一方的主键作为外键;

● 多对多:通过生成中间关系表,引入两张表的主键作为外键,两个主键成为联合主键或使用新的字段作为主键。

在映射过程中,使用property指定映射到的实体类对象属性,与表字段一一对应;使用column指定表中对应的字段。

个人学习记录一下下!!

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com