mybatis 详解(七)------一对一、一对多、多对多
2017-08-29 21:22
411 查看
前面几篇博客我们用mybatis能对单表进行增删改查操作了,也能用动态SQL书写比较复杂的sql语句。但是在实际开发中,我们做项目不可能只是单表操作,往往会涉及到多张表之间的关联操作。那么我们如何用 mybatis 处理多表之间的关联操作呢?请看本篇博客详解。
本篇详细代码:http://pan.baidu.com/s/1eSzmst8 密码:3n3o
①、创建用户表 user 和订单表 orders
用户表 user
订单表 orders
②、创建项目工程,导入相应的 jar 包
③、创建实体类
User.java
Orders.java
④、创建 OrderMapper 接口和 OrderMapper.xml 文件
由于我们采用 Mapper 代理加载 xxxMapper.xml 文件,这里我们重复一下 Mapper 代理所需的条件,接口和xml文件必须满足以下几个条件:
1、接口必须要和 xml 文件同名且在同一个包下,也就是说 xml 文件中的namespace是接口的全类名
2、接口中的方法名和xml 文件中定义的 id 一致
3、接口输入参数类型要和xml 中定义的 parameterType 一致
4、接口返回数据类型要和xml 中定义的 resultType 一致
详细介绍参考上一篇博客:http://www.cnblogs.com/ysocean/p/7301548.html
OrderMapper 接口
OrderMapper .xml文件
⑤、向 mybatis-configuration.xml 配置文件中注册 OrderMapper.xml 文件
⑥、测试
我们在 user.java 中添加一个属性 public List<Orders> orders;
①、创建实体类
user.java如下,orders.java保持不变
②、创建 UserMapper 接口和 [b]UserMapper.xml 文件[/b]
UserMapper接口
UserMapper.xml
③、向 mybatis-configuration.xml 配置文件中注册 UserMapper.xml 文件
④、测试
需求:给定角色id,查询这个角色所属的所有用户信息
①、在数据库中建立相应的表
user 表和上面的保持不变
role 表
两者之间的关联表user_role
②、建立对应的实体类
User.java
Role.java
User_Role.java
③、创建 UserMapper 接口和 [b]UserMapper.xml 文件[/b]
UserMapper 接口
UserMapper.xml
④、向 mybatis-configuration.xml 配置文件中注册 UserMapper.xml 文件
⑤、测试
多对多主要是关联关系要找好,然后根据关联去查询。
本篇详细代码:http://pan.baidu.com/s/1eSzmst8 密码:3n3o
1、一对一
我们以用户表 user 和订单表 orders 为例。设定一个订单只能由一个 用户创建,那么由订单到用户就是一对一的关系。①、创建用户表 user 和订单表 orders
用户表 user
订单表 orders
②、创建项目工程,导入相应的 jar 包
③、创建实体类
User.java
④、创建 OrderMapper 接口和 OrderMapper.xml 文件
由于我们采用 Mapper 代理加载 xxxMapper.xml 文件,这里我们重复一下 Mapper 代理所需的条件,接口和xml文件必须满足以下几个条件:
1、接口必须要和 xml 文件同名且在同一个包下,也就是说 xml 文件中的namespace是接口的全类名
2、接口中的方法名和xml 文件中定义的 id 一致
3、接口输入参数类型要和xml 中定义的 parameterType 一致
4、接口返回数据类型要和xml 中定义的 resultType 一致
详细介绍参考上一篇博客:http://www.cnblogs.com/ysocean/p/7301548.html
OrderMapper 接口
OrderMapper .xml文件
⑤、向 mybatis-configuration.xml 配置文件中注册 OrderMapper.xml 文件
⑥、测试
2、一对多
还是以用户表 user 和 订单表 orders 为例,一个用户能创建多个订单。故用户和订单构成一对多的关联。我们在 user.java 中添加一个属性 public List<Orders> orders;
①、创建实体类
user.java如下,orders.java保持不变
②、创建 UserMapper 接口和 [b]UserMapper.xml 文件[/b]
UserMapper接口
③、向 mybatis-configuration.xml 配置文件中注册 UserMapper.xml 文件
④、测试
3、多对多
这里我们以用户 user 表和 角色role 表为例,假定一个用户能被分配成多重角色,而一种角色也能分给多个用户,故用户和角色构成多对多的关系。需求:给定角色id,查询这个角色所属的所有用户信息
①、在数据库中建立相应的表
user 表和上面的保持不变
role 表
两者之间的关联表user_role
②、建立对应的实体类
User.java
Role.java
③、创建 UserMapper 接口和 [b]UserMapper.xml 文件[/b]
UserMapper 接口
④、向 mybatis-configuration.xml 配置文件中注册 UserMapper.xml 文件
⑤、测试
相关文章推荐
- MyBatis 详解(一对一,一对多,多对多)
- mybatis 详解(七)------一对一、一对多、多对多
- mybatis 详解(七)------一对一、一对多、多对多
- mybatis 详解(七)------一对一、一对多、多对多
- MyBatis 详解(一对一,一对多,多对多)
- mybatis 详解(七)------一对一、一对多、多对多
- mybatis实现对象之间的关系(一对一、一对多、多对多)以及mybatis的缓存机制
- MyBatis 3(4)关联映射:一对一,一对多
- Mybatis 一对一,一对多,多对一,多对多的理解
- Mybatis 中的一对一,一对多,多对多的配置原则示例代码
- mybatis入门基础(六)----高级映射(一对一,一对多,多对多)
- mybatis高级映射关系,一对一,一对多,多对多,多对一
- MyBatis的关联关系 一对一 一对多 多对多
- Mybatis框架运行机制(增删改查,一对一,一对多,日志系统,单元测试,版本控制,缓存,动态Sql)
- mybatis用注解实现 一对一,一对多,多对多哟
- Mybatis 一对一、一对多、多对多关联之级联添加
- maven搭建项目--实现mybatis增删改差、一对多及一对一关系
- MyBatis系列之(六):高级映射(一对一,一对多,多对多)
- mybatis中一对一,一对多,多对多的关系
- mybatis一对一映射配置详解