欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

首頁綜合 正文
目錄

柚子快報(bào)激活碼778899分享:Mybatis——關(guān)聯(lián)關(guān)系映射

柚子快報(bào)激活碼778899分享:Mybatis——關(guān)聯(lián)關(guān)系映射

http://yzkb.51969.com/

目錄

一、一對(duì)多

二、多對(duì)多

前言:

什么叫一對(duì)多?

比如一個(gè)老師教多個(gè)班級(jí),

聯(lián)表查詢,拿到每個(gè)班級(jí)詳細(xì)信息及對(duì)應(yīng)授課老師:

select * from teacher right join class on t.id=c.tid? where c.id=T280

什么叫多對(duì)多?

比如一個(gè)書籍表,一個(gè)書籍類別表,中間必有一個(gè)書籍類別中間表

?一本書對(duì)應(yīng)多個(gè)類別,一個(gè)類別對(duì)應(yīng)了多本書。

那么接下來將以訂單表和訂單項(xiàng)表來作為案例進(jìn)行講解(如下圖所示):

一、一對(duì)多

用代碼生成器生成對(duì)應(yīng)的mapper和model(注意不要生成重復(fù)的mapper和model)

generatorConfig.xml:?

enableCountByExample="false" enableDeleteByExample="false"

enableSelectByExample="false" enableUpdateByExample="false">

enableCountByExample="false" enableDeleteByExample="false"

enableSelectByExample="false" enableUpdateByExample="false">

?運(yùn)行:

?生成成功:

需求一:

通過訂單號(hào)查詢本次訂單的詳細(xì)信息以及對(duì)應(yīng)的所屬訂單項(xiàng)信息

select * from? t_hibernate_order o ,?t_hibernate_order_item?oi

where o.order_id=oi.oid and o.order_id=9;

需求二:

通過訂單項(xiàng)的id查詢出訂單項(xiàng)詳細(xì)信息及所有訂單

select * from? t_hibernate_order o ,?t_hibernate_order_item?oi

where o.order_id=oi.oid and oi.order_ item_id=43;

(哪一條記錄屬于哪一條主記錄的從記錄)

vo類:

view object:視圖對(duì)象

在對(duì)應(yīng)的orderMpper.xml和orderItemMpper.xml中配置resultMap節(jié)點(diǎn)以及對(duì)應(yīng)的方法:

orderMpper.xml:

?orderItemMpper.xml:

在對(duì)應(yīng)的OrderMapper.java和OrderItemsMapper.java中配置出對(duì)應(yīng)的方法:

OrderMapper.java:

OrderVo queryOrderVoByOrderId(@Param("orderId") Integer orderId);

OrderItemsMapper.java:

OrderItemVo queryOrderItemVoByOrderItemId(@Param("orderItemId") Integer orderItemId);

之后到service層中接口和實(shí)現(xiàn)類中寫好方法

之后配置兩個(gè)表之間的關(guān)系,建立vo類:

兩個(gè)表之間的關(guān)系:

? ? ? ? ? ? ?1、一個(gè)訂單有多個(gè)訂單詳情表

? ? ? ? ? ? ?2、一個(gè)訂單詳情只有一個(gè)訂單

OrderVo :?

package com.ycx.vo;

import com.ycx.model.Order;

import com.ycx.model.OrderItem;

import java.util.ArrayList;

import java.util.List;

public class OrderVo extends Order {

private List orderItems = new ArrayList<>();

public List getOrderItems() {

return orderItems;

}

public void setOrderItems(List orderItems) {

this.orderItems = orderItems;

}

@Override

public String toString() {

return "OrderVo{" +

"orderItems=" + orderItems +

'}';

}

}

OrderItemVo :?

package com.ycx.vo;

import com.ycx.model.Order;

import com.ycx.model.OrderItem;

public class OrderItemVo extends OrderItem {

private Order order;

public Order getOrder() {

return order;

}

public void setOrder(Order order) {

this.order = order;

}

@Override

public String toString() {

return "OrderItemVo{" +

"order=" + order +

'}';

}

}

二、多對(duì)多

?1、多對(duì)多關(guān)系就是和一對(duì)多的關(guān)系的大同小異,只是多對(duì)多的關(guān)系可以看成兩個(gè)一對(duì)多關(guān)系。 ?2、多對(duì)多關(guān)系的配置的步驟和一對(duì)多關(guān)系配置是一樣的:(以書籍表、類別表以及書籍類別表為例) ? ? ? ?首先先用逆向生成工具生成t_hibernate_book、t_hibernate_book_category、t_hibernate_category,這兩張表對(duì)應(yīng)的model與mapper

enableCountByExample="false" enableDeleteByExample="false"

enableSelectByExample="false" enableUpdateByExample="false">

enableCountByExample="false" enableDeleteByExample="false"

enableSelectByExample="false" enableUpdateByExample="false">

enableCountByExample="false" enableDeleteByExample="false"

enableSelectByExample="false" enableUpdateByExample="false">

?????????在對(duì)應(yīng)的HbookCategoryMapper.xml配置resultMap節(jié)點(diǎn)以及對(duì)應(yīng)的方法:(為什么只在HbookCategoryMapper.xml中進(jìn)行配置,因?yàn)橹皇且粋€(gè)中間表,可以起到一個(gè)連接的動(dòng)作):

在對(duì)應(yīng)的HbookCategoryMapper.java文件中寫好方法:

package com.ycx.mapper;

import com.ycx.model.HBookC;

import com.ycx.vo.HBookVo;

import com.ycx.vo.HCateVo;

import org.apache.ibatis.annotations.Param;

public interface HBookCMapper {

int deleteByPrimaryKey(Integer bcid);

int insert(HBookC record);

int insertSelective(HBookC record);

HBookC selectByPrimaryKey(Integer bcid);

int updateByPrimaryKeySelective(HBookC record);

int updateByPrimaryKey(HBookC record);

HBookVo queryByBookId(@Param("bookId") Integer bookId);

HCateVo queryByCid(@Param("cid") Integer cid);

}

之后到service層中接口和實(shí)現(xiàn)類中寫好方法

其中要注意的是:配置關(guān)系Vo類和在xxxMap.xml中的配置:

里面用的是collection--->oftype

?

柚子快報(bào)激活碼778899分享:Mybatis——關(guān)聯(lián)關(guān)系映射

http://yzkb.51969.com/

精彩文章

評(píng)論可見,查看隱藏內(nèi)容

本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/19083282.html

發(fā)布評(píng)論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄