1. 程式人生 > >springboot +mybatis 實現一對多,多對一,多對多 【註解版】

springboot +mybatis 實現一對多,多對一,多對多 【註解版】

MyBatis中的一對多 ,多對一,多對多【註解】

以下的例子就是針對 前端框架中所實現的 省-市-區  選擇框的資料介面
前端需要的介面型別:

 後臺程式碼:

dao層:
ProvinceDAO

/**
 *
 * @author 鄔志斌
 * 2018年9月5日 下午2:51:13
 */

@Mapper
public interface ProvinceDAO {

    @Select("select ProvinceID,ProvinceName from trade_shops.`s_province_table`")
    @Results({
         @Result(property = "value", column = "ProvinceID"),
         @Result(property = "label", column = "ProvinceName"),
         @Result(property = "children", column = "ProvinceID",
                 many = @Many(select = "com.wzb.dao.CityDAO.listCity"))
    })
    List<SProvinceDO> listProvince();
  }

CityDAO

/**
 *
 * @author 鄔志斌
 * 2018年9月5日 下午2:51:13
 */

@Mapper
public interface CityDAO {
    
    
    @Select("select cityid,cityname from trade_shops.s_city_table where provinceid=#{provinceid}")
    @Results({
         @Result(property = "value", column = "cityid"),
         @Result(property = "label", column = "cityname"),
         @Result(property = "children", column = "cityid",
                many = @Many(select = "com.wzb.dao.AreaDAO.listArea"))
    })
    List<Map<String, Object>> listCity(@Param("provinceid")Integer provinceid);

AreaDAO
 

/**
 *
 * @author 鄔志斌
 * 2018年9月5日 下午2:51:13
 */
@Mapper
public interface AreaDAO {
    
    @Select("select id,area_name from trade_shops.s_area_table where cityid=#{cityid}")
    @Results({
         @Result(property = "value", column = "id"),
         @Result(property = "label", column = "area_name")
        
        
    })
    List<Map<String, Object>> listArea(@Param("cityid")Integer cityid);
}

model層:

SProvinceDO

/**
 *
 * @author 鄔志斌
 * 2018年9月5日 下午2:53:59
 */
public class SProvinceDO {
    
    private Integer value;
    
    private String label;
    // 一對多
    private List<SCityDO> children;

    省略 get/set

SCityDO

/**
 *
 * @author 鄔志斌
 * 2018年9月5日 下午2:55:49
 */
public class SCityDO {
    
    private Integer value;
    
    private String label;
    
    private Integer provinceid;
    // 一對多
    private List<SAreaDO> children;

省去 get/set

SAreaDO

/**
 *
 * @author 鄔志斌
 * 2018年9月5日 下午2:57:07
 */
public class SAreaDO {
    
    private Integer value;
    
    private String label;
    
    private Integer cityid;

省去 get/set

service 基本上就是直接接收就可以 沒有什麼難點,現在一對多基本上完成。。

相關推薦

springboot +mybatis 實現一對 註解

MyBatis中的一對多 ,多對一,多對多【註解】 以下的例子就是針對 前端框架中所實現的 省-市-區  選擇框的資料介面 前端需要的介面型別:  後臺程式碼: dao層: ProvinceDAO /**  *  * @author 鄔志斌

SpringBoot整合Mybatis註解

一、專案建立 新建一個工程 選擇Spring Initializr,配置JDK版本 輸入專案名  選擇構建web專案所需的staters(啟動器) 選擇與資料庫相關的元件 分

Mybatis 一對一一對的理解

First (一對一)      首先我來說下一對一的理解,就是一個班主任只屬於一個班級,一個班級也只能有一個班主任。好吧這就是對於一對一的理解 怎麼來實現呢? 這裡我介紹了兩種方式:    一種是:使用巢狀結果對映來處理重複的聯合結果的子集      另一種呢是:

利用mybatis實現增刪改查 的小專案單表雙表一對

簡介: MyBatis 本是apache的一個開源專案iBatis, 2010年這個專案由apache software foundation 遷移到了google code,並且改名為MyBatis 。2013年11月遷移到Github。 iBATIS一詞

myBatis一對,等元素注意項

因為程式設計師每天都問自己“我他媽到底錯在哪裡了!”為了以後少問兩句,先記錄下來用myBatis建立一對多關係注意項 專案中用myBatis+springMvc做後臺資料字典,像這種後臺資料量也不大,就沒整那一對多關係。畢竟程式碼如浪女, 沒事不去勾引她。功能實現後閒著無聊就研究了下用mybatis建立一對

mybatis關聯查詢之一對以及

idt 兩個 讀取 arrays ebe bubuko print 過濾 權限表 一、使用IDEA新建maven工程 二、引入mybatis以及相關的jar <!--版本僅供參考--><dependencies> <d

Hibernate配置單向一對出現 org.hibernate.MappingException: Repeated column in mapping for entity5

報錯情況就是這樣,網上一般情況是說的 使用的Hibernate實體類對映資料庫時 配置對應 對映時出現了重複情況** should be mapped with insert=“false” update=“false”) 主要是因為 資料庫裡面的欄位只能對映到

Springboot+Mybatis實現資料來源配置

1、預設application.properties配置檔案增加多資料來源配置,也可另行自己增加新的配置檔案獨立維護 ## master資料來源[主端業務]:用於mybatis自動程式碼生成呼叫及spring對資料庫的系列操作 master.datasource.url=j

hibernate的一對單向關聯雙向關聯區別與聯絡

首先來看一下多對一。舉個例子來說使用者和組。一個組中有多個使用者,一個使用者只能屬於一組。使用者和組之間就是一個多對一的關係的。如下圖        這個關係我們要怎樣維護呢?我們想象一下,假如在一的一端維護關係,即在group一端加一個欄位userId來標識學生。

hibernate一對關係

多對一對映:在說一對一外來鍵單向對映中,在“主”端維護的時候用的是 標籤,裡面新增的unique=”true” 屬性來約束的。這裡不新增unique屬性的時候就變成多對一的對映關係了。 “主”端: 多的一端 <hibernate-mappin

JPA中對映關係詳細說明(一對一對一、)、@JoinColumn、mappedBy說明

JPA中的對映關係 jpa中維護one to one ,one to many, many to one ,many to many 四種對映關係。       在每個關係中,雙方中的一方在其表中擁有連線列。那麼一方稱為所有方(owning side) 或者關係的所有者。

SpringBoot + MyBatis 實現員工的增刪改查

implement char beans 數據庫配置 time unicode sql pom.xml multi SpringBoot + MyBatis 實現對員工的增刪改查 一、使用idea新建SpringBoot項目 File——>New——>Proje

Hibernate關係對映的單向關聯、雙向關聯、一對一主鍵關聯、一對一外來鍵關聯、關係關聯

2018-11-10  22:27:02開始寫   下圖內容ORM、Hibernate介紹、hibername.cfg.xml結構:     下圖內容hibernate對映檔案結構介紹   下圖內容hibernate

Hibernate關系映射的單向關聯、雙向關聯、一對一主鍵關聯、一對一外鍵關聯、關系關聯

nat 延遲加載 alt ima orm 雙向關聯 映射文件 結構 spa 2018-11-10 22:27:02開始寫 下圖內容ORM、Hibernate介紹、hibername.cfg.xml結構: 下圖內容hibernate映射文件結構介紹

Django 的 ORM 有多種關係:一對一

Django 的 ORM 有多種關係:一對一,多對一,多對多。 各自定義的方式為 : 一對一: OneToOneField 多對一: ForeignKey 多對多: ManyToManyField 上邊的描述太過資料而缺乏人性化,我們來更人性化一些: 多個屬於一個,即 belong to

庫增刪該查表增刪該查記錄增刪該查mysql用戶管理表與表關系(一對一)

主鍵 新建 eat evo user pri The 數據類型 pan 庫增刪該查 增加庫 create database db1 create database db1 charset="gbk 查看庫 show databases 查看所有庫 show creat

mySQL之一對一

多對一 一張表的外來鍵對應另外一張表的主鍵:外來鍵欄位的值可以有多個也就是多條記錄,另外一張表的主鍵是主鍵,意味著每條記錄是唯一的,這就是多對一的關係。 一對一 可以在多對一的基礎上進行設限就可以了,只要外來鍵欄位的值唯一對應一條主鍵欄位的記錄,對外來鍵設

基於SpringBoot + Mybatis實現 MVC 項目

myba ces find json格式 see framework pro select .info 1.預覽: (1)完整項目結構 (2) 創建數據庫、數據表: 【user.sql】 SET FOREIGN_KEY_CHECKS=0;

springboot+mybatis實現動態切換數據源

nbsp targe key component mybatis run 註解 config cte 前幾天有個需求,需要使用不同的數據源,例如某業務要用A數據源,另一個業務要用B數據源。我上網收集了一些資料整合了一下,雖然最後這個需求不了了之了,但是多數據源動態切換還是蠻

SpringBoot+mybatis實現增刪改查

SpringBoot+mybatis實現增刪改查 1.建立一個專案。 2.用mybatis逆向工程建立,還不會逆向工程的看我上一篇文章 Mybatis逆向工程建立方法 3.建立好會有如下圖的三個檔案 4.新建一個controller資料夾在裡面新建一個PersonController類