使用mybatis的結果映射“resultMap”進行行轉列。

  • 需求如下:

高校考試模塊中自動爲每個考場安排監考院系、主要規則爲:監考院系不能爲學生院系。

  • 解決思路:

有了上述規則後,已經確定下來硬性規則“考場內監考院系不能是學生院系”。那麼每次自動排監考院系時,程序需要判斷一下是否與考場內學生院系有交集。那麼程序中的判斷邏輯就成爲了“學生院系是否包含監考院系”,包含則false,不包含則爲true。

  • 解決辦法

直接上代碼

mybatis中的結果映射resultMap中可以指定id,相同id的數據則可以進行1對多映射。

參照網址:https://mybatis.org/mybatis-3/zh/sqlmap-xml.html

 

 下面我直接用的是子表,利用自定義id完成這次1對多行多列的映射

以上已完成90%的工作了,接下來就是怎麼用這個結果了,請看業務代碼是怎樣實現 ”“學生院系是否包含監考院系”,包含則false,不包含則爲true“  

 

  • 總結

1、利用mybatis結果映射ResultMap強大的1對多,完成行換列,這樣避免使用數據庫中行轉列超過4000的限制。

2、一定要多看官方文檔,這樣有利於以後開發時思路更寬闊。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章