Mybatis中Collection集合标签的使用详解
mybatis简单的CURD就不用多说了,网上相关博客文档一大堆。分析一下Mybatis里面的collection聚集查询。
假设一个班级有多名学生为例,通过班级号查询出该班级的信息,和班级里面的所有学生的信息,一般的做法就是通过班级号把班级的信息查询出来,再通过班级ID号把该班级里面的所有学生查询出来,我们不用这种通用的方法
1.班级实体类可以定义为这样:
importjava.util.List; publicclassClazzEntity{ privateintclazzID; privateStringclazzName; privateListstudentList; publicintgetClassID(){ returnclazzID; } publicintgetClazzID(){ returnclazzID; } publicvoidsetClazzID(intclazzID){ this.clazzID=clazzID; } publicStringgetClazzName(){ returnclazzName; } publicvoidsetClazzName(StringclazzName){ this.clazzName=clazzName; } publicList getStudentList(){ returnstudentList; } publicvoidsetStudentList(List studentList){ this.studentList=studentList; } }
学生实体类定义:
packagecom.cn.hnust.pojo; publicclassStudentEntity{ privateintstuID; privateStringstuName; privateintstuAge; privateStringstuAddress; publicintgetStuID(){ returnstuID; } publicvoidsetStuID(intstuID){ this.stuID=stuID; } publicStringgetStuName(){ returnstuName; } publicvoidsetStuName(StringstuName){ this.stuName=stuName; } publicintgetStuAge(){ returnstuAge; } publicvoidsetStuAge(intstuAge){ this.stuAge=stuAge; } publicStringgetStuAddress(){ returnstuAddress; } publicvoidsetStuAddress(StringstuAddress){ this.stuAddress=stuAddress; } }
2.数据库建表语句:
CREATETABLEstudent_t ( stunoINTPRIMARYKEY, stunameVARCHAR(20), stuageINT, stuaddressVARCHAR(20), classidINT ); CREATETABLEclass_t ( classidINTPRIMARYKEY, classnameVARCHAR(20) );
3.查询ClazzEntity中的学生信息列表StudentEntity,通过mybatis中的collection标签来配置,其中,ofType是查询返回的学生信息对应的实体类,select为要执行的查询学生列表的查询语句,mybatis的xml配置文件如下所示:
selectclassID,className fromclass_t whereclassID=#{clazzID} selectstuID,stuName,stuAge,stuAddress,classID fromstudent_t whereclassID=#{clazzID}
这样就可以查到一个班级的信息,和班级里面的所有学生信息:
ClazzEntity[clazzID=1,clazzName=junior,studentList=[StudentEntity[stuID=1001,stuName=wanghai,stuAge=18,stuAddress=beijing],StudentEntity[stuID=1002,stuName=zhangdong,stuAge=20,stuAddress=shanghai]]]
到此这篇关于Mybatis中Collection集合标签的使用详解的文章就介绍到这了,更多相关Mybatis中Collection集合标签内容请搜索毛票票以前的文章或继续浏览下面的相关文章希望大家以后多多支持毛票票!