MyBatis使用进阶(理论).ppt_第1页
MyBatis使用进阶(理论).ppt_第2页
MyBatis使用进阶(理论).ppt_第3页
MyBatis使用进阶(理论).ppt_第4页
MyBatis使用进阶(理论).ppt_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第3章 MyBatis使用进阶 本章内容 u高级关联 u集合映射 u关联优化 本章目标 u掌握关联结果的配置与使用 u掌握集合映射的配置与使用 u掌握关联的嵌套结果 关联 u关联关系是一种结构化的关系,指一种对象和另一种对象有联系。给 定关联的两个类,可以从其中的一个类的对象访问到另一个类的相关 对象。在UML图中,关联关系用一条实线来表示。 u关联可以有方向,表示该关联在某方向被使用。只在一个方向上存在 的关联,称为单向关联(Unidirectional Association),在两个方向 上都存在的关联,称为双向关联(Bidirectional Association) 关联配置 u关联元素处理“有一个”类型的关系。例如,一篇博客有一个作者,多个 评论属于同一个博客。关联映射便工作于这种情况之上。一对一和多对 一的关联在mybatis中均使用同一种配置来完成。 public class Blog implements Serializable private Integer id; private Author author; /博客关联的作者对象 private String title; private String content; private Date createTime; private int type; /. 关联配置 u语法: 属性描述 property映射到列结果的字段或属性。如果 匹配的是存在的、与给定名称相同 的JavaBeans 的属性,则会使用 column来自数据库的列名或重命名的列标 签。此与通常传递给 resultSet.getString(columnName) 方法的字符串相同 javaType一个 Java 类的完全限定名,或一 个类型别名 select另外一个映射语句的ID,可以加载 该属性映射需要的复杂类型。获取 的在列属性中指定的列的值将被传 递给目标select 语句作为参数 select * from author where id = #id select * from blog where id = #id 关联配置 u实现博客获取作者信息 u博客关联作者 u通过博客访问作者信息 关联配置 集合映射 u如何实现一个对象找到一个集合对象,实现一对多的关系? 集合映射 u实现从一篇博客到多个评论的关联 u语法: select * from comment where blog_id = #id select * from author where id = #id select * from blog where id = #id 集合映射 u通过一篇文章找到该文章的所有评论信息 u实现一对多的关联(集合映射) u推荐步骤 n在实体类中添加集合关联 n配置关联 n获取数据 配置与性能优化 u在前面的配置中(关联配置,集合映射配置)都会出现一个N+1查询 问题 n每次执行一次查询都会伴随着另一个查询语句来加载关联的对象或集合, 如果加载的关联数据较多,则执行的查询语句次数会增加。 u使用嵌套结果来提高查询效率 嵌套结果的使用 u关联映射的嵌套结果 select B.id, B.title, B.author_id, B.content, B.create_time, B.type, A.id, A.username, A.password, A.email, A.address, A.phone from Blog B left outer join Author A on B.author_id = A.id 嵌套结果的使用 u在配置中,我们使用了resultMap=“authorResult“来设置结果映射 的ID,可以映射关联的嵌套结果到一个合适的对象中。允许联合多 个表来合成到一个单独的结果集,不同于前面的嵌套查询使用多个 查询语句。 集合嵌套结果 u在集合映射中,使用结果嵌套与在关联中类似,此处不作赘述,修改后 的BlogMapper.xml配置文件代码如下: select B.*, C.id, C.content as comment_content, C.postDate from Blog B left outer join Comment C on b.id = c.blog_id where B.id = #id 嵌套结果 u使用嵌套结果重构前面的案例 总结 u在mybatis中,可以通过关联映射与集合映射来实现多对一和一对多 的关系,这样即可很方便地通过一个对象找到关联的其他对象或通过 一个对象找到关联的多个对象,以便于获取数据。 u关联映射用于实现对象之间一对一、多对一的情况,通过配置 association标签来实现关联。 u集合映射用于实现对象之间一对多的关联,通过配置collection标签 来实现。 u在关联中加载对象,myb

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论