最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

SpringBoot整合Mybatis-Plus實(shí)現(xiàn)關(guān)聯(lián)查詢

 更新時(shí)間:2024年08月08日 08:42:48   作者:晴梔_mm  
Mybatis-Plus(簡(jiǎn)稱MP)是一個(gè)Mybatis的增強(qiáng)工具,只是在Mybatis的基礎(chǔ)上做了增強(qiáng)卻不做改變,MyBatis-Plus支持所有Mybatis原生的特性,本文給大家介紹了SpringBoot整合Mybatis-Plus實(shí)現(xiàn)關(guān)聯(lián)查詢,需要的朋友可以參考下

一、搭建環(huán)境

1.創(chuàng)建Maven普通項(xiàng)目

2.添加依賴坐標(biāo)

<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.2.2.RELEASE</version>
</parent>
 
<dependencies>
    <!--單元測(cè)試-->
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
 
    <!-- 數(shù)據(jù)庫驅(qū)動(dòng) -->
    <!--mysql驅(qū)動(dòng)-->
    <dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
   <!-- <version>8.0.19</version>-->
    </dependency>
 
    <!-- lombok 簡(jiǎn)化set get toString -->
    <dependency>
      <groupId>org.projectlombok</groupId>
      <artifactId>lombok</artifactId>
    </dependency>
 
    <!-- mybatis-plus -->
    <dependency>
      <groupId>com.baomidou</groupId>
      <artifactId>mybatis-plus-boot-starter</artifactId>
      <version>3.4.3.1</version>
    </dependency>
  </dependencies>

3.導(dǎo)入SpringBoot的相關(guān)插件

<plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
 

4.創(chuàng)建mapper包、pojo包和啟動(dòng)類Starter

mapper包: 

 在該包下定接口繼承BaseMapper接口

pojo包:

在該包下定義實(shí)體類:客戶類、商品類、訂單類和訂單詳情類

Starter類:

用于SpringBoot項(xiàng)目啟動(dòng)運(yùn)行

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
//掃描mapper接口所在的包
@MapperScan("com.hs.mapper")
public class Starter {
    public static void main(String[] args) {
        SpringApplication.run(Starter.class);
    }
}

5.在resources文件下配置yml文件(數(shù)據(jù)庫配置和日志配置)

#數(shù)據(jù)庫配置
spring:
  datasource:
    driver-class-name: com.mysql.cj.jdbc.Driver
    url: jdbc:mysql://localhost:3306/ssm2?useUnicode=true&useSSL=false&characterEncoding=utf8&serverTimezone=GMT%2B8
    username: root
    password: 123456
 
#添加日志配置項(xiàng)
mybatis-plus:
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

6.在resources文件下創(chuàng)建mapper文件夾,在mapper下創(chuàng)建XML文件自定義數(shù)據(jù)庫操作功能實(shí)現(xiàn)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
        "-//mybatis.org//DTD Mapper 3.0//EN"
        "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >

二、實(shí)現(xiàn)訂單表和用戶表關(guān)聯(lián)查詢(一對(duì)一)

需求:關(guān)聯(lián)查詢其相關(guān)用戶信息

訂單表->用戶表:一個(gè)訂單只由一個(gè)用戶創(chuàng)建,一對(duì)一關(guān)系

做法:1.在Orders類中加入U(xiǎn)sers屬性,Users屬性用于存儲(chǔ)關(guān)聯(lián)查詢的用戶信息。

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
 
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Orders {
    private Integer id;
    private String orderNumber;
    private Double totalPrice;
    private String status;
    private Integer userId;
    /*
    *多表查詢:一對(duì)一關(guān)系
    * 訂單表關(guān)聯(lián)查詢用戶表
    * */
    private Users users;
}

2.在OrderMapper接口中,自定義功能實(shí)現(xiàn)

@Mapper
public interface OrderMapper extends BaseMapper<Orders> {
    public List<Orders> selectUserResultMap();
}

3.在resources文件下mapper文件夾里,書寫映射下XML文件UserMapper

resultMap:需要單獨(dú)定義resultMap,使用 resultMap可以完成將關(guān)聯(lián)查詢映射到實(shí)體類的屬性中。

association標(biāo)簽: 一對(duì)一關(guān)系映射描述。

  • property: 關(guān)系屬性名稱。
  • javaType: 關(guān)系屬性類型。
 <resultMap id="selectUserResultMap" type="com.hs.pojo.Orders">
        <id column="id" property="id"/>
        <id column="order_number" property="orderNumber"/>
        <id column="total_price" property="totalPrice"/>
        <id column="status" property="status"/>
        <association property="users" javaType="com.hs.pojo.Users">
            <id column="user_id" property="id"/>
            <id column="username" property="username"/>
            <id column="password" property="password"/>
            <id column="realname" property="realname"/>
        </association>
    </resultMap>
    <select id="selectUserResultMap" resultType="com.hs.pojo.Orders">
        select o.*,u.username,u.password,u.realname from orders o,users u where o.user_id=u.id
    </select>

4.在測(cè)試類中進(jìn)行測(cè)試

@RunWith(SpringRunner.class)
@SpringBootTest(classes=Starter.class)
public class Test1 {
    @Resource
    private OrderMapper orderMapper;
    //多表查詢:一對(duì)一關(guān)系
    //訂單表關(guān)聯(lián)查詢用戶表
    @Test
    public void selectOneByOne(){
        List<Orders> orders = orderMapper.selectUserResultMap();
        orders.forEach(System.out::println);
    }
}

三、實(shí)現(xiàn)訂單表和訂單詳情表關(guān)聯(lián)查詢(一對(duì)多)

需求:

  • 關(guān)聯(lián)查詢其相關(guān)用戶信息。
  • 關(guān)聯(lián)查詢其相關(guān)訂單詳情信息。

訂單表->訂單詳情表:一對(duì)多 

具體做法同上。

1.在Orders類中加入屬性ordersDetailList

 /*
     * 一對(duì)多關(guān)系屬性:一個(gè)訂單包含多個(gè)訂單詳情
     * */
    private List<OrderDetails> ordersDetailList;

2.在OrderMapper接口中,自定義功能實(shí)現(xiàn)

    /*
    * 一對(duì)多:查詢訂單信息,
    * 一個(gè)訂單對(duì)應(yīng)多條詳情信息,則是一對(duì)多
    * */
 
    public List<Orders> selectOrdersAndDetail();

3.在resources文件下mapper文件夾里,書寫映射下XML文件UserMapper 

在Order類中加入ordersDetailList屬性,details屬性用于存儲(chǔ)關(guān)聯(lián)查詢的訂單詳情。

collection標(biāo)簽: 一對(duì)多關(guān)系映射描述。

  • property: 關(guān)系屬性名稱。
  • ofType: 關(guān)系屬性是一個(gè)List集合,集合中存放的元素類型。
    <!--
        collection:一對(duì)多
        property:訂單實(shí)體類中的屬性
        ofType:集合里面存儲(chǔ)的類型
        -->
 
        <collection property="orderDetailList" ofType="com.hs.pojo.OrderDetails">
            <id column="detail_id" property="id"/>
            <id column="amount" property="amount"/>
            <id column="orders_id" property="ordersId"/>
            <id column="goods_id" property="goodsId"/>
        </collection>
    </resultMap>
 
    <select id="selectOrdersAndDetail" resultMap="detailResultMap">
        select
            o.*,u.username,u.password,u.realname,d.id detail_id,d.amount,d.orders_id,d.goods_id
        from orders o,users u,orders_detail d
        where o.user_id=u.id and o.id=d.orders_id
    </select>

四、實(shí)現(xiàn)訂單表和商品表關(guān)聯(lián)查詢(多對(duì)多)

中間表:訂單詳情表

需求:

  • 關(guān)聯(lián)查詢其相關(guān)用戶信息。
  • 關(guān)聯(lián)查詢其相關(guān)訂單詳情信息。
  • 關(guān)聯(lián)查詢訂單詳情中的商品信息。

訂單表->訂單詳情表:一對(duì)多     訂單詳情表->訂單表:一對(duì)一

訂單詳情表->商品表:一對(duì)一      商品表->訂單詳情表:一對(duì)多

訂單表->商品表:一對(duì)多                 商品表->訂單表:多對(duì)一

做法:

1.在OrderDetails類中加入屬性goods

2.在OrderMapper接口中,自定義功能實(shí)現(xiàn)

3.在resources文件下mapper文件夾里,書寫映射下XML文件UserMappe

 <resultMap id="goodsResultMap" type="com.hs.pojo.Orders">
        <id column="id" property="id"/>
        <id column="order_number" property="orderNumber"/>
        <id column="total_price" property="totalPrice"/>
        <id column="status" property="status"/>
        <!--
        collection:一對(duì)多映射
        property:訂單實(shí)體類中的屬性
        ofType:集合里面存儲(chǔ)的類型
        -->
        <collection property="orderDetailList" ofType="com.hs.pojo.OrderDetails">
            <id column="detail_id" property="id"/>
            <id column="amount" property="amount"/>
            <id column="orders_id" property="ordersId"/>
            <id column="goods_id" property="goodsId"/>
            <association property="goods" javaType="com.hs.pojo.Goods">
                <id column="goods_id" property="id"/>
                <id column="goods_name" property="goodsName"/>
                <id column="description" property="description"/>
                <id column="price" property="price"/>
            </association>
        </collection>
    </resultMap>
    <select id="selectOrdersAndGoods" resultMap="goodsResultMap">
        select
            o.*,d.goods_id,g.goods_name,g.description,g.price
        from orders o,orders_detail d,goods g
        where o.id = d.orders_id and d.goods_id = g.id
    </select>

以上就是SpringBoot整合Mybatis-Plus實(shí)現(xiàn)關(guān)聯(lián)查詢的詳細(xì)內(nèi)容,更多關(guān)于SpringBoot Mybatis-Plus關(guān)聯(lián)查詢的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • MyBatis Plus插件機(jī)制與執(zhí)行流程原理分析詳解

    MyBatis Plus插件機(jī)制與執(zhí)行流程原理分析詳解

    這篇文章主要介紹了MyBatis Plus插件機(jī)制與執(zhí)行流程原理分析,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • 聊聊Mybatis反射之ObjectWrapper的使用

    聊聊Mybatis反射之ObjectWrapper的使用

    本文主要介紹了Mybatis反射之ObjectWrapper的使用,文中根據(jù)實(shí)例編碼詳細(xì)介紹的十分詳盡,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • SpringBoot環(huán)境屬性占位符解析和類型轉(zhuǎn)換方式

    SpringBoot環(huán)境屬性占位符解析和類型轉(zhuǎn)換方式

    這篇文章主要介紹了SpringBoot環(huán)境屬性占位符解析和類型轉(zhuǎn)換方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • struts2獲取服務(wù)器臨時(shí)目錄的方法

    struts2獲取服務(wù)器臨時(shí)目錄的方法

    這篇文章主要為大家詳細(xì)介紹了struts2獲取服務(wù)器臨時(shí)目錄的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-09-09
  • java中的基礎(chǔ)運(yùn)算符

    java中的基礎(chǔ)運(yùn)算符

    這篇文章主要介紹了Java基本數(shù)據(jù)類型和運(yùn)算符,結(jié)合實(shí)例形式詳細(xì)分析了java基本數(shù)據(jù)類型、數(shù)據(jù)類型轉(zhuǎn)換、算術(shù)運(yùn)算符、邏輯運(yùn)算符等相關(guān)原理與操作技巧,需要的朋友可以參考下
    2021-08-08
  • mybatis關(guān)于Criteria使用的小坑

    mybatis關(guān)于Criteria使用的小坑

    這篇文章主要介紹了mybatis關(guān)于Criteria使用的小坑,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • java中文傳值亂碼問題的解決方法

    java中文傳值亂碼問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了java中文傳值亂碼問題的解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-11-11
  • J2EE中的struts2表單細(xì)節(jié)處理

    J2EE中的struts2表單細(xì)節(jié)處理

    這篇文章主要介紹了J2EE中的struts2表單細(xì)節(jié)處理的相關(guān)資料,需要的朋友可以參考下
    2017-06-06
  • springboot自動(dòng)裝配TypeNotPresentExceptionProxy異常排查解決

    springboot自動(dòng)裝配TypeNotPresentExceptionProxy異常排查解決

    這篇文章主要為大家介紹了springboot自動(dòng)裝配TypeNotPresentExceptionProxy異常排查解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-09-09
  • 關(guān)于SpringBoot禁止循環(huán)依賴解說

    關(guān)于SpringBoot禁止循環(huán)依賴解說

    這篇文章主要介紹了關(guān)于SpringBoot禁止循環(huán)依賴解說,Spring的Bean管理,文章圍繞主題展開詳細(xì)介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-05-05

最新評(píng)論

盐津县| 临桂县| 甘洛县| 南川市| 丹阳市| 盈江县| 阿鲁科尔沁旗| 河北省| 西昌市| 耒阳市| 丹棱县| 金昌市| 云阳县| 肃南| 海丰县| 奉新县| 兴化市| 酉阳| 铁岭市| 绥阳县| 甘孜县| 霍山县| 淮滨县| 鹤庆县| 普洱| 阿克陶县| 内丘县| 元阳县| 阳山县| 抚远县| 思南县| 安溪县| 龙山县| 轮台县| 樟树市| 钟山县| 东兴市| 惠州市| 麻城市| 策勒县| 长宁县|