Mybatis 多對一處理和一對多處理

2021-09-25 15:27:40 字數 1887 閱讀 8380

使用資料庫的思想處理:聯表查詢

定義dao介面

listgetstudents();
編寫查詢語句

查詢學生資訊 id name tid , 由於我們要得到老師的資訊,我們需要聯表查詢

查詢老師的資訊 id name

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

select * from mybatis.student

select * from mybatis.teacher where id = #

測試類

@test

public void getstudents()

}

1.編寫介面

listgetstudentstwo();
查詢學生id,學生姓名,老師姓名,需要從學生表和老師表中查詢

學生對應的類進行對映,發現老師乙個物件 , 所以關聯乙個物件;

select s.id,s.name,t.id as tid,t.name as tname

from mybatis.student as s, mybatis.teacher as t

where s.tid = t.id

3.測試類

@test

public void getstudentstwo()

}

mybatis中遇到多對一的情況,要使用關聯對映處理:使用association

兩種處理思路:

資料庫思想 : 聯表查詢

oop思想 :關聯物件

乙個老師對應多個學生

一對多的業務:使用collection處理

乙個老師對應多個學生

public class teacher
編寫dao介面

package com.kuang.dao;

import com.kuang.pojo.teacher;

public inte***ce teacherdao

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

public "- config 3.0//en"

select s.name sname,s.id sid, t.name tname

from mybatis.student as s,mybatis.teacher as t

where s.tid = t.id and t.id = #

select * from mybatis.teacher where id = #

select * from mybatis.student where tid = #

測試類

package com.kuang.dao;

import com.kuang.pojo.teacher;

import com.kuang.utils.mybatisutils;

import org.apache.ibatis.session.sqlsession;

import org.junit.test;

public class teacherdaotest

@test

public void getteachertwo()

}

多對一:association 關聯

一對多:collection 集合

兩種解決方式:

Mybatis一對多和多對一處理的深入講解

目錄 sql create table teacher id int not null,name varchar 30 default null,primary key id insert into teacher id,name values 1,蔡老師 create table student ...

mybatis 一對多查詢

查詢訂單及訂單明細的資訊。這裡怎麼體現了一對多 這裡orders的id出現重複的記錄,無法對映到orders類中 collection 對關聯查詢到多條記錄對映到集合物件中 4 查詢訂單 關聯使用者 及訂單明細 public listfindordersandorderdetailresultmap...

mybatis 一對多查詢

與phoenix不同,在mysql中查詢的結果不會按照id預設排序。所以如果頁面有隱含的順序要求 兩次呼叫,列表順序不變 此時千萬不要使用set,而應該使用list。接下來進入正題 直接上 public class userpublic class order 根據id查詢使用者,並且查詢出該使用者...