mybatis如何封裝List<String>類型屬性
數(shù)據(jù)庫
有一個班級表
然后還有一個學(xué)生表
需要封裝成的對象
/* *@author huanghaitao *@description *@Date 2022/1/27 */ @Data public class AClassAndStudent { private Integer classId; private String className; private List<String> stuNames; }
第一種寫法
封裝ResultMap寫法
<resultMap id="AClassAndStudent" type="com.ruoyi.system.domain.AClassAndStudent"> <result column="class_id" property="classId"/> <result column="class_name" property="className"/> <collection property="stuNames" ofType="string"> <constructor> <arg column="stu_name"/> </constructor> </collection> </resultMap>
sql語句
<select id="testSelectSql" resultMap="AClassAndStudent"> select c.id class_id, c.name class_name, s.name stu_name from class c left join student s on c.id = s.class_id where c.id = 1 </select>
打印結(jié)果
AClassAndStudent(classId=1, className=3班, stuNames=[張三, 李四, 王二, 趙六])
第二種寫法
<resultMap id="AClassAndStudent" type="com.ruoyi.system.domain.AClassAndStudent"> <result column="class_id" property="classId"/> <result column="class_name" property="className"/> <collection property="stuNames" column="class_id" ofType="string" select="selectStuName"/> </resultMap> <select id="testSelectSql" resultMap="AClassAndStudent"> select c.id class_id, c.name class_name from class c where c.id = 1 </select> <select id="selectStuName" resultType="java.lang.String"> select name stu_name from Student where class_id = 1 </select>
上面那個爆紅 不用管的
sql語句打印 有點(diǎn)區(qū)別
但是結(jié)果是一樣的
AClassAndStudent(classId=1, className=3班, stuNames=[張三, 李四, 王二, 趙六])
第三種寫法
修改封裝方式
新建一個學(xué)生類
/* *@author huanghaitao *@description *@Date 2022/1/27 */ @Data public class AStudent { private Integer id; private Integer classId; private String name; }
一個班級類,這個班級類包含學(xué)生類
import java.util.List; @Data public class AClassContainStudent { private Integer id; private String name; private List<AStudent> studentList; }
這樣的話,ResultMap寫法是下面這樣的
<resultMap id="AClassContainStudent" type="com.ruoyi.system.domain.AClassContainStudent"> <id column="class_id" property="id"/> <result column="class_name" property="name"/> <collection property="studentList" resultMap="AStudent"/> </resultMap> <resultMap id="AStudent" type="com.ruoyi.system.domain.AStudent"> <id column="stu_id" property="id"/> <result column="class_id" property="classId"/> <result column="stu_name" property="name"/> </resultMap> <select id="testSelectSqlTwo" resultMap="AClassContainStudent"> select c.id class_id, c.name class_name, s.id stu_id, s.name stu_name from class c left join student s on c.id = s.class_id where c.id = 1 </select>
打印的結(jié)果
AClassContainStudent(id=1, name=3班, studentList=[AStudent(id=1,
classId=1, name=張三), AStudent(id=2, classId=1, name=李四),
AStudent(id=3, classId=1, name=王二), AStudent(id=4, classId=1,
name=趙六)])
總結(jié)
以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
springboot自定義starter啟動器的具體使用實(shí)踐
本文主要介紹了springboot自定義starter啟動器的具體使用實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下2021-09-09Java數(shù)據(jù)庫連接池技術(shù)的入門教程
這篇文章主要給大家介紹了關(guān)于Java數(shù)據(jù)庫連接池技術(shù)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03Spring?循環(huán)依賴之AOP實(shí)現(xiàn)詳情
這篇文章主要介紹了Spring?循環(huán)依賴之AOP實(shí)現(xiàn)詳情,文章圍繞主題展開詳細(xì)的內(nèi)容介紹,具有一定的參考價值,需要的盆友可以參考一下2022-07-07了解spring中的CloudNetflix Hystrix彈性客戶端
這篇文章主要介紹了了解spring中的CloudNetflix Hystrix彈性客戶端,客戶端彈性模式是在遠(yuǎn)程服務(wù)發(fā)生錯誤或表現(xiàn)不佳時保護(hù)遠(yuǎn)程資源(另一個微服務(wù)調(diào)用或者數(shù)據(jù)庫查詢)免于崩潰。,需要的朋友可以參考下2019-06-06Maven中Junit測試@Test等注解無法識別的問題及解決
這篇文章主要介紹了Maven中Junit測試@Test等注解無法識別的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-11-11