JavaWeb mybatis一對一 一對多查詢

2021-08-14 12:22:33 字數 3839 閱讀 1175

mybatis查詢基本返回資料基本用到的都是resulttype與resultmap,resulttype必須po類與sql欄位一致,而resultmap可以不一致通過配置對映。

本篇文章一是要講解resulttype與resultmap如何使用;

二是重點講解一對一與一對多查詢resultmap的使用方便之處,舉例:在查詢每個班級有多少學生,一般會查出很多條,

班級1,學生1;

班級1,學生2;

班級2,學生3;

班級2,學生4;

而我們想要返回的資料格式是

班級1:學生1,學生2;

班級2:學生3,學生4,

這個直接可以在resultmap中配置實現而不用在service裡面再加工。

base表:主查詢表

onetoone表:一對一查詢的表,code與base表fcode關聯

onetomany表:一對多查詢的表,code與base表fcode關聯

base類:對應基表的po類

public class base 

public void setfcode(string fcode)

public string getfname()

public void setfname(string fname)

public string getfzrzt()

public void setfzrzt(string fzrzt)

public string getfssfqy()

public void setfssfqy(string fssfqy)

public string getfssfqybh()

public void setfssfqybh(string fssfqybh)

public string getfssqy()

public void setfssqy(string fssqy)

public string getfssqybh()

public void setfssqybh(string fssqybh)

public string getfsshy()

public void setfsshy(string fsshy)

public string getfhydh()

public void setfhydh(string fhydh)

public string getflssq()

public void setflssq(string flssq)

public string getfjtsq()

public void setfjtsq(string fjtsq)

public string getfjzms()

public void setfjzms(string fjzms)

public string getflyqk()

public void setflyqk(string flyqk)

public string getflyqkbz1()

public void setflyqkbz1(string flyqkbz1)

public string getfbz()

public void setfbz(string fbz)

public string getfbz2()

public void setfbz2(string fbz2)

}

basecustom1類:base類的包裝類,包括code,name,info, onetoone與list等屬性

public class basecustom1 extends base  

public void setcode(string code)

public string getname()

public void setname(string name)

public string getinfo()

public void setinfo(string info)

public onetoone getonetoone()

public void setonetoone(onetoone onetoone)

public listgetlistonetomany()

public void setlistonetomany(listlistonetomany)

}

onetoone類:

public class onetoone 

public void setcode(string code)

public string getinfo()

public void setinfo(string info)

public string getname()

public void setname(string name)

}

onetomany類:

public class onetomany 

public void setcode(string code)

public string getname()

public void setname(string name)

public string getinfo()

public void setinfo(string info)

}

listresulttype ();

listresultmap ();

listresultmap2 (); }

<?xml version="1.0" encoding="utf-8" ?>

select base.*,code,name,info

from (base inner join onetoone on base.fcode=onetoone.code)

select base.*,code,name,info

from (base inner join onetoone on base.fcode=onetoone.code)

select base.*,code,name,info

from (base inner join onetomany on

base.fcode=onetomany.code)

public  object resulttype() 

public object resultmap()

public object resultmap2()

返回資料結果:resulttype:

每日一學(一)

以下兩段 各自的輸出結果是什麼,為什麼。1.var a window function test test 2.var pengpeng this is his code pengpeng.love study console.log pengpeng console.log pengpeng.lo...

一句便是一首 一

九日同姜如龍 王西樵 程穆情諸君登慧光閣飲於竹圃分韻 清 宋琬 塞鴻猶未到蕪城,載酒登臨雨乍晴。山色淺深隨夕照,江流日夜變秋聲。上方鐘磬疏林滿,十里笙歌畫舫明。空負黃花羞短鬢,寒衣三浣客心驚。努力想要讀懂這首詩表達的啥意思,然後還是不甚了了。懷才不遇吧還是?塞鴻未到,陰雨乍晴,江流山色,鐘磬笙歌,可...

一步一印一點一滴

我是王夢珂 西安科技大學大三學生一枚,從初進大學對大學的無數幻想,到現在整日渾噩。不是因為對生活迷茫,而是對未來迷茫。由於前兩年對自己沒有規劃,過的沒有目標沒有方向,所以到現在沒有一技之長,雖然總想做出改變,但老是沒有邁出關鍵的一步。因為對計算機程式設計有興趣所以在自學c,c 雖然大一課程學過但是現...