學成線上
阿新 • • 發佈:2021-12-13
1 maven結構
2 樹查詢自連線
2-1 表結構
-- ---------------------------- -- Table structure for teachplan -- ---------------------------- DROP TABLE IF EXISTS `teachplan`; CREATE TABLE `teachplan` ( `id` varchar(32) NOT NULL, `pname` varchar(64) NOT NULL, `parentid` varchar(32) NOT NULL, `grade` char(1) NOT NULL COMMENT '層級,分為1、2、3級', `ptype` char(1) DEFAULT NULL COMMENT '課程型別:1視訊、2文件', `description` varchar(500) DEFAULT NULL COMMENT '章節及課程時介紹', `timelength` double(5,2) DEFAULT NULL COMMENT '時長,單位分鐘', `courseid` varchar(32) DEFAULT NULL COMMENT '課程id', `orderby` varchar(32) DEFAULT NULL COMMENT '排序欄位', `status` char(1) NOT NULL COMMENT '狀態:未釋出、已釋出', `trylearn` char(1) DEFAULT NULL COMMENT '是否試學', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2-1 sql查詢
<select id="selectList" parameterType="java.lang.String" resultMap="teachplanMap"> SELECT a.id one_id, a.pname one_pname, b.id two_id, b.pname two_pname, c.id three_id, c.pname three_pname, teachplan_media.media_id, teachplan_media.media_fileoriginalname FROM teachplan a LEFT JOIN teachplan b ON b.parentid = a.id LEFT JOIN teachplan c ON c.parentid = b.id LEFT JOIN teachplan_media ON c.id = teachplan_media.teachplan_id WHERE a.parentid = '0' <if test="_parameter!=null and _parameter != ''"> AND a.courseid = #{courseId} </if> ORDER BY a.orderby, b.orderby, c.orderby </select>
2-3 查詢結果
2-4 resultMap封裝
我對任何唾手而得,快速,出自本能,即興,含混的事物沒有信心。我相信緩慢,平和,細水長流的力量,踏實,冷靜。我不相信缺乏自律精神和不自我建設,不努力,可以得到個人或集體的解放。<resultMap id="teachplanMap" type="com.xuecheng.framework.domain.course.ext.TeachplanNode"> <id column="one_id" property="id"></id> <result column="one_pname" property="pname"></result> <collection property="children" ofType="com.xuecheng.framework.domain.course.ext.TeachplanNode"> <id column="two_id" property="id"></id> <result column="two_pname" property="pname"></result> <collection property="children" ofType="com.xuecheng.framework.domain.course.ext.TeachplanNode"> <id column="three_id" property="id"></id> <result column="three_pname" property="pname"></result> <result column="media_id" property="mediaId"></result> <result column="media_fileoriginalname" property="mediaFileoriginalname"></result> </collection> </collection> </resultMap>