最近在做项目时,需要用到mybaits 嵌套查询,什么意思呢,比如个人信息,中包含复杂对象地址,并且是一对多,我想查询个人信息 同时带出地址信息, 这个之前写过,但mybatis的语法老是忘记,今天写个博客,记录下,好记性不如烂笔头,先简单写一版本,晚上继续润色下。 一下是sqlmap 内容,这里做下解释:<!--此处是代码mybatis 代码片段--><collection property="subChapter" column="{id=id,COURSE_ID=COURSE_ID}" select="selectSubChapter" /> 这行表示需要嵌套查询的配置,javabean中的属性是: subChapter,并且是集合类型,column="{id=id,COURSE_ID=COURSE_ID}" 这个是子查询传递的参数,这个例子是多参数传递,如果是单个参数可以column="id",先写到这里。(单个参数不需要花括号) 如果返回的是单个对象,即一对一,应该这么写:<associationproperty="subChapter" column="{id=id,COURSE_ID=COURSE_ID}" select="selectSubChapter" /><!--以上是说明-->
<select id="searchTCourseChapterByParams" parameterType="map" resultMap="TCourseChapterMap"> SELECT <include refid="TCourseChapterBaseColumnSql"/> FROM t_course_chapter <include refid="TCourseChapterBaseWhereSql"/></select><select id="selectSubChapter" parameterType="map" resultMap="subChapterMap"> SELECT <include refid="TCourseChapterBaseColumnSql"/> FROM t_course_chapter WHERE COURSE_ID=#{COURSE_ID} and PARENT_ID=#{id}</select><resultMap type="cn.skillbridge.model.course.vo.TCourseChapterVo" id="TCourseChapterMap"> <id column="ID" property="id"/> <result column="NAME" property="name"/> <result column="COURSE_ID" property="courseId"/> <result column="PARENT_ID" property="parentId"/> <result column="FREE" property="free"/> <result column="SERIAL" property="serial"/> <result column="VEDIO_CODE" property="vedioCode"/> <result column="DURATION" property="duration"/> <result column="CREATE_DATE" property="createDate"/> <result column="UPDATE_DATE" property="updateDate"/> <result column="C_USER_ID" property="CUserId"/> <result column="M_USER_ID" property="MUserId"/> <!----> <collection property="subChapter" column="{id=id,COURSE_ID=COURSE_ID}" select="selectSubChapter" />这行表示需要嵌套查询的配置,javabean中的属性是: subChapter,并且是集合类型,
</resultMap>
<resultMap type="TCourseChapter" id="subChapterMap">
<id column="ID" property="id"/>
<result column="NAME" property="name"/>
<result column="COURSE_ID" property="courseId"/>
<result column="PARENT_ID" property="parentId"/>
<result column="FREE" property="free"/>
<result column="SERIAL" property="serial"/>
<result column="VEDIO_CODE" property="vedioCode"/>
<result column="DURATION" property="duration"/>
<result column="CREATE_DATE" property="createDate"/>
<result column="UPDATE_DATE" property="updateDate"/>
<result column="C_USER_ID" property="CUserId"/>
<result column="M_USER_ID" property="MUserId"/>
</resultMap>
书面排版比较乱,见谅,哈哈哈。。。
mybatis 嵌套查询,一对多
最新推荐文章于 2025-06-05 05:09:03 发布