国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[Mybatis的一對一和一對多]

這篇具有很好參考價(jià)值的文章主要介紹了[Mybatis的一對一和一對多]。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

目錄

???前言:

???一對一關(guān)聯(lián)查詢:

???一對多關(guān)聯(lián)查詢:

????下面是上面代碼中所涉及到的實(shí)體類結(jié)構(gòu)設(shè)計(jì):

???一對一關(guān)聯(lián)查詢:

???用戶實(shí)體類(User):

???用戶詳情實(shí)體類(UserDetail):

???一對多關(guān)聯(lián)查詢:

???訂單實(shí)體類(Order):

???訂單詳情實(shí)體類(OrderDetail):

???下面是上面代碼中所涉及到的表結(jié)構(gòu)設(shè)計(jì):

???一對一關(guān)聯(lián)查詢:

???用戶表(user):

???用戶詳情表(user_detail):

???一對多關(guān)聯(lián)查詢:

???訂單表(order):

???訂單詳情表(order_detail):

???數(shù)據(jù)格式:

???在一對多關(guān)聯(lián)查詢中,查詢結(jié)果的格式通常是一個(gè)主表記錄對應(yīng)多個(gè)從表記錄,即一個(gè)主表記錄對應(yīng)一個(gè)包含多個(gè)從表記錄的集合。以訂單表(order)和訂單詳情表(order_detail)為例,查詢結(jié)果的格式如下:

???在一對一關(guān)聯(lián)查詢中,查詢結(jié)果的格式通常是一個(gè)主表記錄對應(yīng)一個(gè)從表記錄,即一個(gè)主表記錄對應(yīng)一個(gè)從表記錄對象。以用戶表(user)和用戶詳情表(user_detail)為例,查詢結(jié)果的格式如下:


??前言:

???感覺要寫一些通俗易懂的,

??上一篇直接使用mybatis注解來實(shí)現(xiàn)?, 這篇使用框架提供的標(biāo)簽映射來實(shí)現(xiàn), 主打就是一個(gè)全面

??下面是映射版本地址:

[Mybatis注解版的 一對一和一對多實(shí)現(xiàn)過程 ]_是湯圓丫的博客-CSDN博客

???一對一關(guān)聯(lián)查詢:

假設(shè)有兩個(gè)表,一個(gè)是用戶表(user),另一個(gè)是用戶詳情表(user_detail),它們之間是一對一的關(guān)系,即一個(gè)用戶對應(yīng)一個(gè)用戶詳情。下面是一對一關(guān)聯(lián)查詢的Mapper.xml配置文件:

<!-- 查詢用戶及其詳情信息 -->
<select id="getUserWithDetail" resultMap="userWithDetail">
  SELECT u.*, d.*
  FROM user u
  LEFT JOIN user_detail d ON u.id = d.user_id
  WHERE u.id = #{id}
</select>

<!-- 定義結(jié)果集 -->
<resultMap id="userWithDetail" type="User">
  <id property="id" column="id"/>
  <result property="username" column="username"/>
  <result property="password" column="password"/>
  <result property="email" column="email"/>
  <result property="detail" column="id" resultMap="userDetail"/>
</resultMap>

<resultMap id="userDetail" type="UserDetail">
  <id property="id" column="id"/>
  <result property="userId" column="user_id"/>
  <result property="realName" column="real_name"/>
  <result property="age" column="age"/>
  <result property="address" column="address"/>
</resultMap>

在上面的配置文件中,我們定義了一個(gè)查詢用戶及其詳情信息的SQL語句,并且定義了兩個(gè)結(jié)果集,一個(gè)是userWithDetail,另一個(gè)是userDetail。其中,userWithDetail結(jié)果集中包含了user表和user_detail表的所有字段,同時(shí)還包含了一個(gè)detail屬性,該屬性的值是一個(gè)UserDetail對象,它通過resultMap屬性引用了userDetail結(jié)果集。

???一對多關(guān)聯(lián)查詢:

假設(shè)有兩個(gè)表,一個(gè)是訂單表(order),另一個(gè)是訂單詳情表(order_detail),它們之間是一對多的關(guān)系,即一個(gè)訂單對應(yīng)多個(gè)訂單詳情。下面是一對多關(guān)聯(lián)查詢的Mapper.xml配置文件:

<!-- 查詢訂單及其詳情信息 -->
<select id="getOrderWithDetails" resultMap="orderWithDetails">
  SELECT o.*, d.*
  FROM order o
  LEFT JOIN order_detail d ON o.id = d.order_id
  WHERE o.id = #{id}
</select>

<!-- 定義結(jié)果集 -->
<resultMap id="orderWithDetails" type="Order">
  <id property="id" column="id"/>
  <result property="orderNo" column="order_no"/>
  <result property="createTime" column="create_time"/>
  <result property="details" column="id" resultMap="orderDetail"/>
</resultMap>

<resultMap id="orderDetail" type="OrderDetail">
  <id property="id" column="id"/>
  <result property="orderId" column="order_id"/>
  <result property="productName" column="product_name"/>
  <result property="price" column="price"/>
  <result property="quantity" column="quantity"/>
</resultMap>

在上面的配置文件中,我們定義了一個(gè)查詢訂單及其詳情信息的SQL語句,并且定義了兩個(gè)結(jié)果集,一個(gè)是orderWithDetails,另一個(gè)是orderDetail。其中,orderWithDetails結(jié)果集中包含了order表的所有字段,同時(shí)還包含了一個(gè)details屬性,該屬性的值是一個(gè)List對象,它通過resultMap屬性引用了orderDetail結(jié)果集。

????下面是上面代碼中所涉及到的實(shí)體類結(jié)構(gòu)設(shè)計(jì):

???一對一關(guān)聯(lián)查詢:

???用戶實(shí)體類(User):
public class User {
    private int id;
    private String username;
    private String password;
    private String email;
    private UserDetail detail; // 一對一關(guān)聯(lián)

    // getter和setter方法
}
???用戶詳情實(shí)體類(UserDetail):
public class UserDetail {
    private int id;
    private int userId;
    private String realName;
    private int age;
    private String address;

    // getter和setter方法
}

???一對多關(guān)聯(lián)查詢:

???訂單實(shí)體類(Order):
public class Order {
    private int id;
    private String orderNo;
    private Date createTime;
    private List<OrderDetail> details; // 一對多關(guān)聯(lián)

    // getter和setter方法
}
???訂單詳情實(shí)體類(OrderDetail):
public class OrderDetail {
    private int id;
    private int orderId;
    private String productName;
    private double price;
    private int quantity;

    // getter和setter方法
}

在實(shí)體類中,我們通過定義屬性來表示表中的字段,同時(shí)還定義了一對一和一對多的關(guān)聯(lián)關(guān)系。在一對一關(guān)聯(lián)中,用戶實(shí)體類中的detail屬性表示用戶詳情,它的類型是UserDetail類;在一對多關(guān)聯(lián)中,訂單實(shí)體類中的details屬性表示訂單詳情列表,它的類型是List類。

???下面是上面代碼中所涉及到的表結(jié)構(gòu)設(shè)計(jì):

???一對一關(guān)聯(lián)查詢:

???用戶表(user):
字段名 類型 描述
id int 用戶ID
username varchar 用戶名
password varchar 密碼
email varchar 郵箱地址
???用戶詳情表(user_detail):
字段名 類型 描述
id int 用戶詳情ID
user_id int 用戶ID
real_name varchar 真實(shí)姓名
age int 年齡
address varchar 地址

???一對多關(guān)聯(lián)查詢:

???訂單表(order):
字段名 類型 描述
id int 訂單ID
order_no varchar 訂單號(hào)
create_time date 創(chuàng)建時(shí)間
???訂單詳情表(order_detail):
字段名 類型 描述
id int 訂單詳情ID
order_id int 訂單ID
product_name varchar 商品名稱
price double 商品價(jià)格
quantity int 商品數(shù)量

???數(shù)據(jù)格式:

???在一對多關(guān)聯(lián)查詢中,查詢結(jié)果的格式通常是一個(gè)主表記錄對應(yīng)多個(gè)從表記錄,即一個(gè)主表記錄對應(yīng)一個(gè)包含多個(gè)從表記錄的集合。以訂單表(order)和訂單詳情表(order_detail)為例,查詢結(jié)果的格式如下:

{
  "id": 1,
  "orderNo": "202201010001",
  "createTime": "2022-01-01",
  "details": [
    {
      "id": 1,
      "orderId": 1,
      "productName": "商品1",
      "price": 100.0,
      "quantity": 2
    },
    {
      "id": 2,
      "orderId": 1,
      "productName": "商品2",
      "price": 200.0,
      "quantity": 1
    }
  ]
}

在上面的JSON格式中,我們可以看到一個(gè)訂單記錄對應(yīng)了兩個(gè)訂單詳情記錄,它們被封裝在一個(gè)List集合中。在Java代碼中

???在一對一關(guān)聯(lián)查詢中,查詢結(jié)果的格式通常是一個(gè)主表記錄對應(yīng)一個(gè)從表記錄,即一個(gè)主表記錄對應(yīng)一個(gè)從表記錄對象。以用戶表(user)和用戶詳情表(user_detail)為例,查詢結(jié)果的格式如下:

{
  "id": 1,
  "username": "test",
  "password": "123456",
  "email": "test@example.com",
  "detail": {
    "id": 1,
    "userId": 1,
    "realName": "張三",
    "age": 20,
    "address": "北京市"
  }
}

在上面的JSON格式中,我們可以看到一個(gè)用戶記錄對應(yīng)了一個(gè)用戶詳情記錄,它們被封裝在一個(gè)UserDetail對象中,然后作為User對象的detail屬性的值。在Java代碼中,我們可以通過User類的detail屬性來獲取這個(gè)UserDetail對象,然后獲取用戶詳情記錄的信息。文章來源地址http://www.zghlxwxcb.cn/news/detail-526696.html

到了這里,關(guān)于[Mybatis的一對一和一對多]的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MyBatis-Plus不寫任何resultMap和SQL執(zhí)行一對一、一對多、多對多關(guān)聯(lián)查詢

    MyBatis-Plus不寫任何resultMap和SQL執(zhí)行一對一、一對多、多對多關(guān)聯(lián)查詢 MyBatis-Plus不寫任何resultMap和SQL執(zhí)行一對一、一對多、多對多關(guān)聯(lián)查詢 com.github.dreamyoung mprelation 0.0.3.2-RELEASE 注解工具使用優(yōu)缺點(diǎn): 優(yōu)點(diǎn): 使用簡單,通過在實(shí)體類上添加@OneToOne / @OneToMany / @ManyToOne / @ManyToM

    2024年01月20日
    瀏覽(24)
  • python#django數(shù)據(jù)庫一對一/一對多/多對多

    python#django數(shù)據(jù)庫一對一/一對多/多對多

    搭建 # 一對一 class?? TestUser(models.Model): ??? username=models.CharField(max_length=32) ??? password = models.CharField(max_length=32) class TestInfo(models.Model): ??? mick_name=models.CharField(max_length=32) ??? user=models.OneToOneField(to=TestUser,on_delete=models.CASCADE()#on_delete 刪除的模式 CASCADE 級(jí)聯(lián)刪除 讓后執(zhí)行數(shù)

    2024年02月14日
    瀏覽(30)
  • java使用WebSocket實(shí)現(xiàn)一對一實(shí)時(shí)對話

    java使用WebSocket實(shí)現(xiàn)一對一實(shí)時(shí)對話

    最近的項(xiàng)目中有實(shí)時(shí)對話的需求。這里也是查閱了很多的資料。使用webSocket實(shí)現(xiàn)一對一對話是最多的。 鏈接: https://pan.baidu.com/s/1Vn1e1qw7nRnU1_4R-4fcGg 提取碼: qwer? 邏輯講解: 現(xiàn)在我們要給張三豐發(fā)一個(gè)你好,我們要解決下面兩個(gè)問題 ·? 這個(gè)你好怎么展示在我的窗口 · ? 這個(gè)

    2023年04月09日
    瀏覽(30)
  • 通過一個(gè)實(shí)際例子說明Django中的數(shù)據(jù)庫操作方法OneToOneField()的用法【數(shù)據(jù)表“一對一”關(guān)系】

    當(dāng)我們在Django中定義一個(gè)模型時(shí),可以使用 OneToOneField 來建立一個(gè)一對一的關(guān)系。這種關(guān)系表示兩個(gè)模型之間的一種特殊關(guān)聯(lián),其中一個(gè)模型的實(shí)例只能與另一個(gè)模型的實(shí)例關(guān)聯(lián)。 讓我們以一個(gè)簡單的示例來說明 OneToOneField 的用法。假設(shè)我們正在構(gòu)建一個(gè)簡單的博客應(yīng)用,其

    2024年02月13日
    瀏覽(22)
  • [Django-04]一對一,一對多

    OneToOneField(),F(xiàn)oreignKey() 的參數(shù)如下 to 要連接的模型 to_field 要被關(guān)聯(lián)的目標(biāo)Model的字段 on_delete 刪除主表(被關(guān)聯(lián)的表,也就是非OneToOneField,F(xiàn)oreignKey的表)時(shí),當(dāng)前表怎么處理。 CASCADE-聯(lián)動(dòng)刪除 PROTECT -拋出異常 SET_NULL-設(shè)為null SET_DEFAULT-設(shè)為預(yù)定義的默認(rèn)值 SET-設(shè)置為指定的值

    2024年02月04日
    瀏覽(32)
  • hibernate 一對一 一對多 多對多

    hibernate 一對一 一對多 多對多

    User 實(shí)體類 Address 實(shí)體類 測試 User實(shí)體類 Vlog實(shí)體類 測試 測試 mappedby : 屬性指向?qū)嶓w關(guān)聯(lián)表的擁有者,聲明在被擁有者。 簡單說就是另一邊定義了關(guān)聯(lián)規(guī)則,這邊不用再定義一遍了,直接引用就行。 @JoinColumn : 外鍵列 在一對一中 @JoinColumn 聲明在那個(gè)實(shí)體類中,生成數(shù)據(jù)庫表

    2024年02月13日
    瀏覽(26)
  • queryWrapper處理一對一,一對多,多對多

    是的,定義一個(gè) BankUser 對象時(shí),通常需要在其內(nèi)部定義一個(gè) BankCard 字段來表示其與 bank_card 表的關(guān)聯(lián)關(guān)系。 例如,在 BankUser 類中定義一個(gè) BankCard 對象作為其屬性:```java ``` 然后,在查詢 BankUser 對象時(shí),需要使用 LEFT JOIN 將 bank_user 和 bank_card 表進(jìn)行關(guān)聯(lián),并使用 select 方法指

    2024年02月04日
    瀏覽(27)
  • [MySql]實(shí)現(xiàn)多表查詢-一對一,一對多

    [MySql]實(shí)現(xiàn)多表查詢-一對一,一對多

    目錄 多表關(guān)聯(lián)關(guān)系的分類 mybatis中的多表查詢: 數(shù)據(jù)庫準(zhǔn)備 ?項(xiàng)目目錄 ?一對一查詢(多對一) 方式一:(xml文件映射) 查詢結(jié)果: ?方式二:(注解映射) ?一對多查詢(一對多) 方式一:(xml文件映射) ?方式二:(注解映射) 既然數(shù)據(jù)庫是存儲(chǔ)項(xiàng)目中的數(shù)據(jù)的,項(xiàng)目中的

    2023年04月10日
    瀏覽(26)
  • TCP一對一聊天

    TCP一對一聊天

    客戶端 服務(wù)端? 結(jié)果展示 ?第二種 客戶端 服務(wù)端 結(jié)果

    2024年02月04日
    瀏覽(23)
  • OVS Vxlan一對一模式VS一對多模式

    OVS Vxlan一對一模式VS一對多模式

    OVS Vxlan模式 OVS 支持 GRE、VXLAN、STT、Geneve和IPsec隧道協(xié)議,這些隧道協(xié)議就是overlay網(wǎng)絡(luò)的基礎(chǔ)協(xié)議,通過對物理網(wǎng)絡(luò)做的一層封裝和擴(kuò)展,解決了二層網(wǎng)絡(luò)數(shù)量不足的問題,最大限度的減少對底層物理網(wǎng)絡(luò)拓?fù)涞囊蕾囆?,同時(shí)也最大限度的增加了對網(wǎng)絡(luò)的控制。針對VXLAN隧道創(chuàng)

    2024年02月03日
    瀏覽(42)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包