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)]}