Mybatis的三种映射关系以及联表查询

这篇具有很好参考价值的文章主要介绍了Mybatis的三种映射关系以及联表查询。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

一、概念

二、一对一

1、配置generatorConfig.xml

2、Vo包的编写

3、xml的sql编写

4、编写对应接口及实现类

5、测试

三、一对多

1、Vo包类的编写

2、xml的sql编写

3、编写对应接口及实现类

4、测试

四、多对多

1、Vo类

2、xml的sql配置

3、接口及接口实现类

4、测试


一、概念


1、MyBatis中表之间的关系是如何映射的处理的?
resultType:使用多表查询我们经常会resultType="java.utils.Map" ,我们不推荐这样写,但是这样写对自己比较有利。

好处:resultType 是直接将查询结果映射到 Java 对象,可以使用简单的类型(如 int、String)或复杂的自定义类型。它的好处是简单直观,易于使用。
弊端:对于复杂的关系映射,resultType 可能会变得冗长,并且无法处理一对多或多对多的关系映射。
resultMap:resultMap 允许我们定义复杂的映射规则,将结果集中的多个字段映射到一个对象中。

好处:可以处理复杂的关系映射,支持一对多或多对多的关系映射。我们可以在 resultMap 中定义映射规则,指定字段与属性间的映射关系,并通过嵌套 resultMap 处理表之间的关系。
弊端:相对于 resultType,resultMap 的配置较为繁琐。

二、一对一

1、配置generatorConfig.xml

在我们的配置文件里面配置我们需要的几个表,自动生成所需文件

        <table schema="" tableName="t_hibernate_book" domainObjectName="HBook"
               enableCountByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" enableUpdateByExample="false">
        </table>
 
        <table schema="" tableName="t_hibernate_book_category" domainObjectName="HBookCategory"
               enableCountByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" enableUpdateByExample="false">
        </table>
 
        <table schema="" tableName="t_hibernate_category" domainObjectName="HCategory"
               enableCountByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" enableUpdateByExample="false">
        </table>
 
        <table schema="" tableName="t_hibernate_order" domainObjectName="HOrder"
               enableCountByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" enableUpdateByExample="false">
        </table>
 
        <table schema="" tableName="t_hibernate_order_item" domainObjectName="HOrderItem"
               enableCountByExample="false" enableDeleteByExample="false"
               enableSelectByExample="false" enableUpdateByExample="false">
        </table>

然后生成我们想要的model和xml映射文件

2、Vo包的编写

当然我们要先建立这个包里面的类才能更好的下一步。

我们现在示例的是一对一的,所以根据前面以此类推我们建立一个HOrderItemVo类

package com.liwen.vo;
 
import com.liwen.model.HOrder;
import com.liwen.model.HOrderItem;
 
/**
 * @软件包名 com.liwen.vo
 * @用户 liwen
 * @create 2023-08-26 下午4:37
 * @注释说明:
 */
public class HOrderItemVo extends HOrderItem {
    private HOrder hOrder;
 
    public HOrder gethOrder() {
        return hOrder;
    }
 
    public void sethOrder(HOrder hOrder) {
        this.hOrder = hOrder;
    }
}

3、xml的sql编写

在我们的里面添加一个sql的方法编写

    <resultMap id="HOrderItemVoMap" type="com.liwen.vo.HOrderItemVo">
        <result column="order_itemId" property="orderItemId"/>
        <result column="product_id" property="productId"/>
        <result column="quantity" property="quantity"/>
        <result column="oid" property="oid"/>
        <!--association是一对一的关系-->
        <association property="hOrder" javaType="com.liwen.model.HOrder">
            <result column="order_id" property="orderId"/>
            <result column="order_no" property="orderNo"/>
        </association>
    </resultMap>
    <select id="selectByHOrderId" resultMap="HOrderItemVoMap" parameterType="java.lang.Integer">
        select *
        from t_hibernate_order o,
             t_hibernate_order_item oi
        where o.order_id = oi.oid
          and oi.order_item_id = #{oiid}
    </select>

4、编写对应接口及实现类

在上面我们已经写好了sql,我们生成对应的接口及接口实现方法。

在我们生成的HOrderItemMapper 接口里面编写

package com.liwen.mapper;
 
import com.liwen.model.HOrderItem;
import com.liwen.vo.HOrderItemVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
 
@Repository
public interface HOrderItemMapper {
    int deleteByPrimaryKey(Integer orderItemId);
 
    int insert(HOrderItem record);
 
    int insertSelective(HOrderItem record);
 
    HOrderItem selectByPrimaryKey(Integer orderItemId);
 
    int updateByPrimaryKeySelective(HOrderItem record);
 
    int updateByPrimaryKey(HOrderItem record);
 
    HOrderItemVo selectByHOrderId(@Param("oiid") Integer oiid);
}

创建一个biz的包,里面编写一个HOrderItemBiz接口类并且编写接口方法

package com.liwen.biz;
 
import com.liwen.vo.HOrderItemVo;
 
/**
 * @软件包名 com.liwen.biz
 * @用户 liwen
 * @create 2023-08-26 下午4:48
 * @注释说明:
 */
public interface HOrderItemBiz {
    HOrderItemVo selectByHOrderId(Integer oiid);
}

在这个biz里面新建一个impl包,里面创建一个HOrderItemBizImpl 接口实现类,继承HOrderItemBiz

package com.liwen.biz.impl;
 
import com.liwen.biz.HOrderItemBiz;
import com.liwen.mapper.HOrderItemMapper;
import com.liwen.vo.HOrderItemVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-26 下午4:48
 * @注释说明:
 */
@Service
public class HOrderItemBizImpl implements HOrderItemBiz {
    @Autowired
    private HOrderItemMapper hOrderItemMapper;
 
    @Override
    public HOrderItemVo selectByHOrderId(Integer oiid) {
        return hOrderItemMapper.selectByHOrderId(oiid);
    }
}

5、测试

package com.liwen.biz.impl;
 
import com.liwen.biz.HOrderItemBiz;
import com.liwen.vo.HOrderItemVo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-26 下午4:58
 * @注释说明:
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-context.xml"})
public class HOrderItemBizImplTest {
    @Autowired
    private HOrderItemBiz hOrderItemBiz;
 
    @Test
    public void selectByHOrderId() {
        HOrderItemVo hOrderItemVo = hOrderItemBiz.selectByHOrderId(27);
        System.out.println(hOrderItemVo);
    }
}

三、一对多

1、Vo包类的编写

因为我们是一对多的所以我们再编写vo类的时候,里面是使用list集合

package com.liwen.vo;
 
import com.liwen.model.HOrder;
import com.liwen.model.HOrderItem;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * @软件包名 com.liwen.vo
 * @用户 liwen
 * @create 2023-08-26 下午3:55
 * @注释说明:
 */
public class HOrderVo extends HOrder {
    //    一个订单存在多个订单项
    private List<HOrderItem> hOrderItems = new ArrayList<>();
 
    public List<HOrderItem> gethOrderItems() {
        return hOrderItems;
    }
 
    public void sethOrderItems(List<HOrderItem> hOrderItems) {
        this.hOrderItems = hOrderItems;
    }
}

2、xml的sql编写

在原本的基础的sql上我们增加一个一对多的sql

 <!--  resultType="com.liwen.vo.HOrderVo" 在多表的字段是无法使用的-->
    <!--  我们要写一个resultMap映射-->
    <resultMap id="HOrderVoMap" type="com.liwen.vo.HOrderVo">
        <!--   每个订单对应的属性,column:数据库属性名;property:实体类属性名     -->
        <result column="order_id" property="orderId"/>
        <result column="order_no" property="orderNo"/>
        <!--   我们设置hOrderItems数组里面的属性     -->
        <!--   collection是一对多的关系     -->
        <collection property="hOrderItems" ofType="com.liwen.model.HOrderItem">
            <result column="order_itemId" property="orderItemId"/>
            <result column="product_id" property="productId"/>
            <result column="quantity" property="quantity"/>
            <result column="oid" property="oid"/>
        </collection>
    </resultMap>
    <select id="byOid" resultMap="HOrderVoMap" parameterType="java.lang.Integer">
        select *
        from t_hibernate_order o,
             t_hibernate_order_item oi
        where o.order_id = oi.oid
          and o.order_id = #{oid}
    </select>

3、编写对应接口及实现类

根据sql生成的对应的HOrderMapper 类里面生成已经编写好的sql方法

package com.liwen.mapper;
 
import com.liwen.model.HOrder;
import com.liwen.vo.HOrderVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
 
@Repository
public interface HOrderMapper {
    int deleteByPrimaryKey(Integer orderId);
 
    int insert(HOrder record);
 
    int insertSelective(HOrder record);
 
    HOrder selectByPrimaryKey(Integer orderId);
 
    int updateByPrimaryKeySelective(HOrder record);
 
    int updateByPrimaryKey(HOrder record);
 
    //============================================
    HOrderVo byOid(@Param("oid") Integer oid);
}

在biz包里面新建一个接口HOrderBiz 

package com.liwen.biz;
 
import com.liwen.vo.HOrderVo;
 
/**
 * @软件包名 com.liwen.biz
 * @用户 liwen
 * @create 2023-08-26 下午4:15
 * @注释说明:
 */
public interface HOrderBiz {
    HOrderVo byOid(Integer oid);
}

在biz包里面的impl里面新建一个Java类实现HOrderBiz 接口

package com.liwen.biz.impl;
 
import com.liwen.biz.HOrderBiz;
import com.liwen.mapper.HOrderMapper;
import com.liwen.vo.HOrderVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-26 下午4:16
 * @注释说明:
 */
@Service
public class HOrderBizImpl implements HOrderBiz {
    @Autowired
    private HOrderMapper hOrderMapper;
 
    @Override
    public HOrderVo byOid(Integer oid) {
        return hOrderMapper.byOid(oid);
    }
}

4、测试

package com.liwen.biz.impl;
 
import com.liwen.biz.HOrderBiz;
import com.liwen.vo.HOrderVo;
import org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
import static org.junit.Assert.*;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-26 下午4:22
 * @注释说明:
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-context.xml"})
public class HOrderBizImplTest {
 
    @Autowired
    private HOrderBiz hOrderBiz;
 
    @Test
    public void byOid() {
        HOrderVo hOrderVo = hOrderBiz.byOid(7);
        System.out.println(hOrderVo);
 
    }
    
}

四、多对多

1、Vo类

package com.liwen.vo;
 
import com.liwen.model.HBook;
import com.liwen.model.HCategory;
 
import java.util.List;
 
/**
 * @软件包名 com.liwen.vo
 * @用户 liwen
 * @create 2023-08-27 下午10:29
 * @注释说明:
 */
public class HBookVo extends HBook {
    private List<HCategory> hCategoryList;
 
    public List<HCategory> gethCategoryList() {
        return hCategoryList;
    }
 
    public void sethCategoryList(List<HCategory> hCategoryList) {
        this.hCategoryList = hCategoryList;
    }
}
package com.liwen.vo;
 
import com.liwen.model.HBook;
import com.liwen.model.HCategory;
 
import java.util.ArrayList;
import java.util.List;
 
/**
 * @软件包名 com.liwen.vo
 * @用户 liwen
 * @create 2023-08-27 下午11:03
 * @注释说明:
 */
public class HCategoryVo extends HCategory {
    private List<HBook> hBooks = new ArrayList<>();
 
    public List<HBook> gethBooks() {
        return hBooks;
    }
 
    public void sethBooks(List<HBook> hBooks) {
        this.hBooks = hBooks;
    }
}

2、xml的sql配置

分别在不同的xml配置文件里面配置

 <resultMap id="HBookVo" type="com.liwen.vo.HBookVo">
        <result column="book_id" property="bookId"/>
        <result column="book_name" property="bookName"/>
        <result column="price" property="price"/>
        <collection property="hCategoryList" ofType="com.liwen.model.HCategory">
            <result column="category_id" property="categoryId"/>
            <result column="category_name" property="categoryName"/>
        </collection>
    </resultMap>
    <!--    根据书籍id查询出书籍信息及所属类别-->
    <select id="selectByBId" resultMap="HBookVo" parameterType="java.lang.Integer">
        select *
        from t_hibernate_book b,
             t_hibernate_book_category bc,
             t_hibernate_category c
        where b.book_id = bc.bid
          and bc.cid = c.category_id
          and b.book_id = #{bid}
    </select>
<resultMap id="HCategoryVo" type="com.liwen.vo.HCategoryVo">
        <result column="category_id" property="categoryId"/>
        <result column="category_name" property="categoryName"/>
        <collection property="hBooks" ofType="com.liwen.model.HBook">
            <result column="book_id" property="bookId"/>
            <result column="book_name" property="bookName"/>
            <result column="price" property="price"/>
        </collection>
    </resultMap>
    <select id="selectByCId" resultMap="HCategoryVo" parameterType="java.lang.Integer">
        select *
        from t_hibernate_book b,
             t_hibernate_book_category bc,
             t_hibernate_category c
        where b.book_id = bc.bid
          and bc.cid = c.category_id
          and c.category_id = #{cid}
    </select>

3、接口及接口实现类

在生成的接口类里面编写对应的接口方法

package com.liwen.mapper;
 
import com.liwen.model.HBook;
import com.liwen.vo.HBookVo;
import org.apache.ibatis.annotations.Param;
 
public interface HBookMapper {
    int deleteByPrimaryKey(Integer bookId);
 
    int insert(HBook record);
 
    int insertSelective(HBook record);
 
    HBook selectByPrimaryKey(Integer bookId);
 
    int updateByPrimaryKeySelective(HBook record);
 
    int updateByPrimaryKey(HBook record);
 
    HBookVo selectByBId(@Param("bid") Integer bid);
}
package com.liwen.mapper;
 
import com.liwen.model.HCategory;
import com.liwen.vo.HCategoryVo;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
 
@Repository
public interface HCategoryMapper {
    int deleteByPrimaryKey(Integer categoryId);
 
    int insert(HCategory record);
 
    int insertSelective(HCategory record);
 
    HCategory selectByPrimaryKey(Integer categoryId);
 
    int updateByPrimaryKeySelective(HCategory record);
 
    int updateByPrimaryKey(HCategory record);
 
    HCategoryVo selectByCId(@Param("cid") Integer cid);
}

在biz包里面新建一个HBookBiz接口类

package com.liwen.biz;
 
import com.liwen.vo.HBookVo;
 
/**
 * @软件包名 com.liwen.biz
 * @用户 liwen
 * @create 2023-08-27 下午10:50
 * @注释说明:
 */
public interface HBookBiz {
    HBookVo selectByBId(Integer bid);
}
package com.liwen.biz;
 
import com.liwen.vo.HCategoryVo;
 
public interface HCategoryBiz {
 
    HCategoryVo selectByCId(Integer cid);
}

在Biz里面的impl包里面新

package com.liwen.biz.impl;
 
import com.liwen.biz.HBookBiz;
import com.liwen.mapper.HBookMapper;
import com.liwen.vo.HBookVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-27 下午10:53
 * @注释说明:
 */
@Service
public class HBookBizImpl implements HBookBiz {
    @Autowired
    private HBookMapper hBookMapper;
 
    @Override
    public HBookVo selectByBId(Integer bid) {
        return hBookMapper.selectByBId(bid);
    }
}

建HBookBizImpl 接口实现HBookBiz接口类文章来源地址https://www.toymoban.com/news/detail-694997.html

package com.liwen.biz.impl;
 
import com.liwen.biz.HBookBiz;
import com.liwen.mapper.HBookMapper;
import com.liwen.vo.HBookVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-27 下午10:53
 * @注释说明:
 */
@Service
public class HBookBizImpl implements HBookBiz {
    @Autowired
    private HBookMapper hBookMapper;
 
    @Override
    public HBookVo selectByBId(Integer bid) {
        return hBookMapper.selectByBId(bid);
    }
}
package com.liwen.biz.impl;
 
import com.liwen.biz.HCategoryBiz;
import com.liwen.mapper.HCategoryMapper;
import com.liwen.vo.HCategoryVo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-27 下午11:12
 * @注释说明:
 */
@Service
public class HCategoryBizImpl implements HCategoryBiz {
    @Autowired
    private HCategoryMapper hCategoryMapper;
 
    @Override
    public HCategoryVo selectByCId(Integer cid) {
        return hCategoryMapper.selectByCId(cid);
    }
}

4、测试

package com.liwen.biz.impl;
 
import com.liwen.biz.HBookBiz;
import com.liwen.vo.HBookVo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
import static org.junit.Assert.*;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-27 下午10:59
 * @注释说明:
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-context.xml"})
public class HBookBizImplTest {
    @Autowired
    private HBookBiz hBookBiz;
 
    @Test
    public void selectByBId() {
        HBookVo hBookVo = this.hBookBiz.selectByBId(8);
        System.out.println(hBookVo);
    }
}
package com.liwen.biz.impl;
 
import com.liwen.biz.HCategoryBiz;
import com.liwen.vo.HCategoryVo;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
 
import static org.junit.Assert.*;
 
/**
 * @软件包名 com.liwen.biz.impl
 * @用户 liwen
 * @create 2023-08-27 下午11:14
 * @注释说明:
 */
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"classpath:spring-context.xml"})
public class HCategoryBizImplTest {
    @Autowired
    private HCategoryBiz hCategoryBiz;
 
    @Test
    public void selectByCId(){
        HCategoryVo hCategoryVo = hCategoryBiz.selectByCId(8);
        System.out.println(hCategoryVo);
        hCategoryVo.gethBooks().forEach(System.out::println);
    }
 
}

到了这里,关于Mybatis的三种映射关系以及联表查询的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mybatis-puls——条件查询的三种格式+条件查询null判定+查询投影

    在mybatis_plus的封装中的WrapperT接口参数就是用于封装查询条件   在测试类中启动如上一个简单的查询,然后控制台运行会输出一大堆无关日志,这里先把这些日志关闭 先新建一个XML配置文件   然后变成如下,这里configuration标签里面什么都没有配置就是取消所有日志文件了

    2024年01月18日
    浏览(28)
  • Mybatis Plus一对多联表查询及分页解决方案

    查询用户信息列表,其中包含用户对应角色信息,页面检索条件有根据角色名称查询用户列表; 一个用户对应多个角色,用户信息和角色信息分表根据用户id关联存储,用户和角色一对多进行表连接查询, 创建对应表: 对应实体类: 在使用一对多连接查询并且分页时,发现

    2023年04月11日
    浏览(39)
  • Mybatis中的关系映射

    目录 前言 1.一对一的映射关系 1.1 创建模型类和Vo类  1.2 配置当前模型类的mapper.xml 1.3 开始测试 2.一对多的映射关系 2.1 创建模型类和Vo类 2.2 配置当前模型类的mapper.xml 2.3 开始测试 3.多对多的映射关系 总结  注意点:  一对一映射(One-to-One Mapping) : 一对一关系指的是两个

    2024年02月09日
    浏览(29)
  • MyBatis关联关系映射详解

    目录 前言 一、 什么是关联关系映射? 二、MyBatis的关系映射方式 1.基于XML配置的关系映射 2.基于注解的关系映射 三、如何使用MyBatis进行关系映射? 四、关于关系映射的一些建议 五、关联关系映射 1.一对一关联关系映射 嵌套查询 嵌套结果映射 2.一对多关联关系映射 嵌套查

    2024年02月09日
    浏览(49)
  • Mybatis学习笔记,包含mybatis基本使用、关系映射、动态SQL、分页插件等等

    😀😀😀创作不易,各位看官点赞收藏. 简介:MyBatis 是一款优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。MyBatis 可以通过简单的 XML 或注解来配置和映射原始类型、接口和 Java POJO(Plain

    2024年02月15日
    浏览(38)
  • 认识Mybatis的关联关系映射,灵活关联表对象之间的关系

    目录      一、概述 ( 1 )  介绍 ( 2 )  关联关系映射 ( 3 ) 关联讲述 二、一对一关联映射 2.1 数据库创建 2.2 配置文件  2.3 代码生成 2.4 编写测试 三、一对多关联映射 四 、多对多关联映射 给我们带来的收获 关联关系映射是指在数据库中,通过定义 表之间的关联关系 ,将多

    2024年02月11日
    浏览(31)
  • 如何在MyBatis中处理复杂结果集映射关系

    在开发中,我们不是总是对单表进行操作的场景。按照数据库表的设计原则,要符合一定的范式,那么就需要对某一种场景的表进行拆分。 在业务上,可能是属于同一个业务。但是,在数据库中表的存储这块,可能就会涉及到表的拆分。 这里设计到表的创建直接创建两张表

    2024年02月05日
    浏览(34)
  • MyBatis中至关重要的关系映射----全方面介绍

    目录 一 对于映射的概念 1.1 三种关系映射 1.2 resultType与resultMap的区别 resultType: resultMap: 二,一对一关联查询 2.1 嵌套结果集编写 2.2 案例演示 三,一对多关联查询 3.1 嵌套结果集编写  3.3 案例演示 四,多对多关联查询  4.1 嵌套结果集编写  4.2 案例演示      在关系型数

    2024年02月09日
    浏览(26)
  • MyBatis 的关联关系配置 一对多,一对一,多对多 关系的映射处理

    目录 一.关联关系配置的好处  二. 导入数据库表:  三.    一对多关系:--    一个订单对应多个订单项        四.一对一关系:---一个订单项对应一个订单 五.多对多关系(两个一对多)          MyBatis是一个Java持久化框架,可以 通过XML或注解的方式 将对象与数据库

    2024年02月11日
    浏览(49)
  • SpringBoot+MyBatis批量插入数据的三种方式

    最近导入表格数据时需要同时插入修改大量数据,研究了一下有三种实现方式 1、用for循环调用sql插入数据 这种方式插入大量数据时,效率非常底下,不推荐 2、利用mybatis的foreach来实现循环插入 这种方式插入大量数据时,好处是不用频繁访问数据库,一条sql搞定,效率比较

    2024年02月16日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包