栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

mybatis高级映射

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

mybatis高级映射

mybatis高级映射

订单数据模型分析思路一对一映射
高级映射本质来说是多个表的联合查询的过程。

订单数据模型分析思路

数据表:
用户表user:记录了购买商品的用户信息。
订单表orders:记录了用户所创建的订单(购买商品的订单)
订单明细表orderdetail:记录了订单的详细信息即购买商品的信息。
商品表items:记录了商品信息。

数据模型分析:

表与表之间的业务关系
user和orders:(一对多关系)
user->orders:一个用户可以创建多个订单,一对多。
orders->user:一个订单只能由一个用户创建,一对一。

orders和orderdetail:(一对多关系)
orders->orderdetail:一个订单可以包括多个订单明细 一对多。
orderdetail->orders:一个订单明细只能包括在一个订单中 一对一。

一对一映射

需求:通过订单号来查询订单及用户信息

select * from orders o,user u where o.user_id = u.id and u.number=?

分析:通过分析,orders表示主表,user表是辅助表
在Order的pojo类上添加上User属性

public class Orders213 {
    private Integer id;
    private Integer userId;
    private String number;
    private Date createTime;
    private String note;
    
    //新增属性
    private User213 user;
  //省略了getter和setter方法
}

接口方法:

Orders213 selectOrdersByNumber(String number);

返回结果通过resultType返回:

    
        select o.*,u.id u_id,u.username u_username,u.sex u_sex,u.address u_address from orders o,user u where o.user_id = u.id and o.number= #{number}
    

使用resultMap中提供的association配置一对一关系。
association:用于配置关联查询的单个对象。
property属性:要映射到pojo类中的对象的属性。
javaType:要映射的pojo属性的全限定名。
columnPrefix:针对数据库相同前缀的别名。

    
        
        
        
        
        
        
            
            
            
            
         
    

优化2:

extends继承自主类,resultMap使用一个已经存在的map类

        
    

注:一对一映射使用resultMap下的association来配置映射关系。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/777846.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号