Mybatis + mysql 實現兩級級聯的查詢


Mybatis + mysql 實現兩級級聯的查詢

 

一、需求:根據Mybatis實現2級級聯的查詢。

根據省的id查詢它下面所有的市信息。

二、實現步驟

 

方法一:

思想: 此種情況是“一對多”,我們在的mapper.xml中,用collection定義多的一個集合即可。

property   ---> 對應實體類中,多的那個子類,list
ofType     ---> 對應子類的試題類型
column    ----> 父類傳遞給子類查詢的外鍵
select      ----> 子類查詢的方法

1.定義父類+子類的實體類

package com.imocc.mall.pojo;

import lombok.Data;

import java.util.List;

/**
 * @author wy
 */
@Data
public class Province {
    private Integer id;

    private String provinceid;

    private String province;

    private List<City> list;

    @Override
    public String toString() {
        return "Province{" +
                "id=" + id +
                ", provinceid='" + provinceid + '\'' +
                ", province='" + province + '\'' +
                ", list=" + list +
                '}';
    }
}
package com.imocc.mall.pojo;

import lombok.Data;

@Data
public class City {
    private Integer id;

    private String cityid;

    private String city;

    private String father;


}

2.mapper類

 

 2. mapperxml文件

 

 3. 測試

 

 

JDBC Connection [HikariProxyConnection@1532915766 wrapping com.mysql.cj.jdbc.ConnectionImpl@62dbe64e] will not be managed by Spring
==>  Preparing: select * from hat_province where provinceID =? 
==> Parameters: 110000(String)
<==    Columns: id, provinceID, province
<==        Row: 1, 110000, 北京市
====>  Preparing: select id, cityID, city, father from hat_city where father = ? 
====> Parameters: 110000(String)
<====    Columns: id, cityID, city, father
<====        Row: 1, 110100, 市轄區, 110000
<====        Row: 2, 110200, 縣, 110000
<====      Total: 2
<==      Total: 1
Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@8f2098e]
Province{id=1, provinceid='110000', province='北京市', list=[City(id=1, cityid=110100, city=市轄區, father=110000), City(id=2, cityid=110200, city=縣, father=110000)]}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM