一对多关联关系只需要在多的一方引入少的一方的主键作为外键即可。在实体类中就是反过来,在少的一方添加多的一方,声明一个List<另一方> 属性名 作为少的一方的属性。
用户和订单就是一对多的关系,从用户角度看就是一对多关系,从订单的角度来看就是多对一的关系。
/** * 订单持久化类 */public class Orders { private Integer id; private String number; setter/getter方法}
/***用户持久化类*/public class User { private Integer id; private String username; private String address; private List
用户mapper接口
/** * 用户Mapper接口 */public interface UserMapper { //用户和订单为一对多关系,那么此时应该返回一个用户list里面包含了订单信息 List
用户的mapper映射文件
用户业务层接口
/** * 用户业务层接口 */public interface UserWithOrdersInfo { List
用户业务层实现类
@Servicepublic class UserWithOrdersInfoImpl implements UserWithOrdersInfo { @Autowired private UserMapper userMapper; @Override public List
控制器类
@Controllerpublic class UserOrdersController { @Autowired private UserWithOrdersInfo userWithOrdersInfo; @RequestMapping("/userordersinfo/{id}") public String getUserOrdersInfo(@PathVariable int id, Model model){ model.addAttribute("userordersinfo",userWithOrdersInfo.selectUserOrdersInfo(id)); return "userordersinfo"; }}
页面
| 用户id | 姓名 | 用户地址 | 订单id | 订单号 | ||
|---|---|---|---|---|---|---|
| 用户id | 用户姓名 | 用户地址 | 订单id | 订单号 | 订单id | 订单号 |
运行结果
一对多关联关系总结:
一对多关系从不同的角度看,关系是不一样的,但是最终都是一样的,在编写mapper映射文件的时候使用的是