Spring+SpringMVC+MyBatis框架技术精讲与整合案例第13章MyBatis的关联映射第13章MyBatis的关联 映射1.一对一关联映射2.MyBatis下载与安装2.一对多关联映射3.多对多关联映射13.1一对一关联映射在现实 生活中,一个人只能有一个身份证,一个身份证只能对应一个人,人和身份证之间就是一对一关系。以人和身份证为例,使用MyBatis框架处 理它们之间的一对一关联关系的步骤如下所示。(1)创建数据表(2)将项目mybatis1复制并命名为mybatis4, 再导入到Eclipse开发环境中。(3)创建实体类(4)创建MyBatis映射文件(5)创建Mapper接口( 6)引用映射文件(7)测试一对一关联映射13.2一对多关联映射在实际开发中,一对多关联关系要比一对一更为常见。例如 ,订单与订单明细之间就是一对多关系。一个订单有多条明细信息,一条订单明细信息对应一个订单。同样,商品类别与商品之间也是一对多关系。 一个商品类别对应有多个商品,一个商品属于一个类别。以数据库eshop中的商品类别表type和商品表product_info为例 ,针对数据查询、插入和删除操作,使用MyBatis框架处理它们之间的一对多关联关系。13.2一对多关联映射1.数据查询( 嵌套查询)数据查询是根据商品类型编号从数据表type中查询商品类型,并查询关联的商品列表。其具体实现步骤如下。(1)将项目 mybatis1复制并命名为mybatis5,再导入到Eclipse开发环境中。(2)创建实体类(3)创建MyBatis映 射文件(4)创建Mapper接口(5)引用映射文件(6)测试一对多关联映射13.2一对多关联映射1.数据查询( 嵌套结果)在映射文件TypeMapper.xml中,一对多关联映射是通过执行另一个返回预期类型的映射SQL语句,即引用外部定义好 的SQL语句块,这种关联映射查询方式也称为嵌套查询。此外,MyBatis还提供了另一种关联映射查询方式——嵌套结果,它通过嵌套结 果映射来处理联接结果集的重复子集。还是以类别表type和商品表product_info的一对多关联查询为例,使用嵌套结果查询方式 的步骤如下所示。(1)在映射文件TypeMapper.xml中,编写使用嵌套结果查询方式进行一对多关联查询的配置。(2)在接 口TypeMapper中,添加一个方法findTypeById2。(3)添加测试方法。13.2一对多关联映射2.数据插 入数据插入操作要实现将数据同时插入数据表type和product_info,其具体实现步骤如下。(1)在映射文件TypeM apper.xml中,编写将数据插入数据表type的配置。(2)在接口TypeMapper中,添加一个addType方法。( 3)在映射文件ProductInfoMapper.xml中,编写将数据插入数据表product_info的配置。(4)在com. mybatis.mapper包中,创建ProductInfoMapper接口,并添加一个addProductInfo方法。(5) 添加测试方法13.2一对多关联映射3.数据删除数据删除操作要实现从数据表type删除记录时,将关联表product_in fo中的记录也删除,其具体实现步骤如下。(1)在映射文件TypeMapper.xml中,编写删除数据的配置。(2)在接口 TypeMapper中,添加一个deleteTypeById方法。(3)添加测试方法13.3多对多关联映射在实际开发中, 多对多关联关系也比较常见。例如,订单与商品之间就是多对多关系。一个订单可以包含多个商品,一个商品可以属于多个订单。同样,管理员与系 统功能之间也是多对多关系。一个管理员可以拥有多个功能权限,一个系统功能可以属于多个用户。以数据库eshop中的管理员表admi n_info和系统功能表functions为例,它们之间通过中间表powers来关联,这个中间表分别与admin_info和fun ctions构成多对一关联。中间表powers以aid和fid作为联合主键,其中,aid字段作为外键参照admin_info表的i d字段,fid字段作为外键参照functions表的id字段。13.3多对多关联映射以数据查询操作为例,使用MyBatis框 架处理它们之间的多对多关联关系,其具体实现步骤如下。(1)将项目mybatis1复制并命名为mybatis6,再导入到Eclip se开发环境中。(2)创建实体类(3)创建MyBatis映射文件(4)创建Mapper接口(5)引用映射文件(6)测试 多对多关联映射13.4小结本章针对实际开发中涉及到的数据表之间的一对一、一对多和多对多三种比较常见的关联关系,着重以数据查询操作为例,详细讲解了使用MyBatis框架处理这三种关联关系的具体过程。 |
|