MyBatis 구현은 다음과 같이 트리 구조 데이터를 자세히 읽습니다.
테이블 구조
테이블 작성`lscrm_function_privilege` (`id` int (10) Unsigned unull auto_increment comment 'number',`create_id` varchar (30) not null default 'sys',`update_id` varchar (30) null default 'sys',`create_time ',`timeStamp' timestamp null default current_timestamp on update current_timestamp 댓글 '수정 시간',``````tinyint '',`````tinyint (3) unull default '1'댓글 '유효성 1. tinyint (3) unull default '0'0 'parent node',`is_leaf_node` tinyint (3) null default '1'댓글 '은 리프 노드입니다 (잎 노드는 0의 노드입니다. 0 ',`sub_system_id` int (10) null default'0 '댓글'서브 시스템 ',`is_hidden` tinyint (3) null default'0 '주석'이 숨겨져 있습니까? UI ', 기본 키 (`id`))에 표시되지 않음 Engine = innodb auto_increment = 22 기본 charset = utf8 comment ='서브 코드 create /r /n : customer.add ';
데이터 구성
`lscrm_function_privilege` 값 ( '1', 'sys', 'sys', '2016-09-07 15:20:40', '2016-09-07 15:21:17', '1', 'web.permission', 'fermission Management', '0', '1', '0'); `lscrm_function_privilege` 값 ( '2', 'sys', 'sys', '2016-09-07 15:21:12', '2016-09-07 15:21:40', '1', 'web.permission.user-mgmt', '사용자 관리', '1', '0', '1', '0'); `lscrm_function_privilege` 값 ( '3', 'sys', 'sys', '2016-09-07 15:22:16', '2016-09-07 15:22:35', '1', 'web.permission.user-mgmt.add', '추가', '2', '1', '' ',' '1'; `lscrm_function_privilege 'value ('4 ','sys ','sys ','2016-09-07 15:23:17 ','2016-09-07 15:23:17 ','1 ','web.permission.user-mgmt.modify ','insidifor ','1 ','1 ',' ','1 ','1 ','1 ','1 ','1 ','1 '; `lscrm_function_privilege` 값 ( '5', 'sys', 'sys', '2016-09-07 16:10:37', '2016-09-07 16:10:42', '1', 'app.customer', '고객 관리', '0', '0', '2', '0'); 값 ( '6', 'sys', 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'app.customer.add', '고객 추가', '5', '1', '2', '0'; 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'app.customer.modify', '5', '1', '2', '0');`lscrm_function_privilege '('8 ' 16:12:33 ','2016-09-07 16:14:10 ','1 ','app.customer.viewdetail ','고객 세부 사항보기 ','5 ','1 ','2 ','0 ');``lscrm_function_privilege'값 ( '9', 'Sys', '', '2016-09-07. 16:12:33 ','2016-09-07 16:12:33 ','1 ','1 ','app.customer.addvisit ','방문 추가 ','5 ','1 ','2 ','0 ');'lscrm_function_privilege` 값 ( '10', '', ',', ',', ',', ',', ','sys ','sys ','sys ','sys ', '2016-09-07 16:14:17', '1', 'app.customer.viewdemand', '고객 조달 요구 사항보기', '5', '1', '2', '0'); lscrm_function_frivirege` 값 ( '11', 'sys', '', 'Sys', 'Sys', '2016-09-07 16:14:17', '1', 'app.customer.vieworder', '고객 주문보기', '5', '1', '2', '0');`lscrm_function_privilege 값 ( '12', 'sys', 'sys', '2016-09-07 16:13:59-09-07 16:13:59-09-07에 삽입하십시오. 16:14:17 ','1 ','app.customer.viewshop ','고객 주문보기 ','5 ','1 ','2 ','0 ');`lscrm_function_privilege` 값 ('13 ','sys ','2016-09-07 16:17:28 ','2016-09-07 ' 16:18:39 ','1 ','app.customer.viewpleply ','Ord Order Grab List ','5 ','1 ','2 ','0 ');`lscrm_function_privilege` 값 ('14 ','sys ','sys ','2016-09-07 16:32 ','2016-09-07. 16:23:51 ','1 ','app.customer.fastopenshop ','Quick Store Opening ','5 ','1 ','2 ','0 ');`lscrm_function_privilege` 값 ('15 ','sys ','sys ','2016-09-07 16:33 ','2016-09-07 ' 16:22:33 ','1 ','1 ','app.demand ','demand management ','0 ','0 ','2 ','0 ');`lscrm_function_privilege` 값 ('17 ','sys ','sys ','2016-09-07 16:23:21 ',' ','1111111111 ','Sys ','sys ','sys ' 'app.demand.private', 'Private Sea Demand', '15', '1', '1', '2', '0');`lscrm_function_privilege 'value ('18 ','sys ','sys ','2016-09-07 16:23:58 ','2016-09-07 16:23:58 ','1 ','Sys ','Sys ' 'app.demand.feedback', 'page feedback', '15', '1', '2', '0');`lscrm_function_privilege` 값 ( '19', 'sys', 'sys', '2016-09-07 16:24:47', '1,' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '', '' ',' '', '' ',' ',' ',' '', '', '' ',' '', '' ',' '', '' ',' '', '' ',' '', '' ',' '', '' ',' ',' '' '2', '0'); '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1'; '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', 'App.kpi.viewdata', '보기 성능 데이터', '20', '1', '0');엔티티 콩
package com.lianshang.crm.biz.entity; import com.google.common.base.base.moreobjects; import java.util.arraylist; import java.util.date; import java.util.date; import java.util.list; public class lscrmfunctionprivilegeentity {/** numb CreateTime;/** 수정 시간 **/개인 날짜 updateTime = new Date ();/** 유효성 1. valid 0. valid 0. valid **/private int avility = 1;/** 인코딩 **/개인 문자열 코드;/** name **/private string functionname;/** 부모 node **/private int parentid;/**는 리프 노드입니다. 노드). 자식 노드를 추가 할 때 Parent_id is_leaf_node는 0 **/private int isleafnode;/** istiliated subsystem **/private int subsystemid;/**로 설정해야합니까? UI **/private int ishidden = 1에 표시되지 않습니다. 개인 목록 <lscrmfunctionprivilegeentity> prodilegelist = new ArrayList <> (); // get ()/set () 생략. . . } package com.lianshang.crm.biz.entity; import java.util.arraylist; import java.util.date; import java.util.list;/*** 2016/9/8에서 Zhenyu에 의해 생성 된/***/***/public class lscrmfunctionprivileree {/** infration ind; private string; 시간 **/개인 날짜 updateTime = new 날짜 ();/** 유효성 1.Valid 0. 유효하지 않은 **/개인 int 타당성 = 1;/** 인코딩 **/개인 문자열 코드;/** 이름 **/개인 문자열 기능 이름;/** 부모 노드 **/개인 int parentid;/**는 리프 노드입니다. 자식 노드를 추가 할 때 Parent_id is_leaf_node는 0 **/private int isleafnode;/** istiliated subsystem **/private int subsystemid;/**로 설정해야합니까? UI **/private int ishidden = 1에 표시되지 않습니다. 개인 목록 <lscrmfunctionprivilegeentity> privilegelist = new Arraylist <> ();}맵퍼 구성
<? xml version = "1.0"encoding = "utf-8"?> <! doctype mapper public "-// mybatis.org//dtd Mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "com.lianshang.crm.biz.dao.lscrmfunctionprivilegedao"> <cacheeviction = "fifo"flushinterval = "60000"size = "1024"readonly = "true"/> <resultmap id = "lscrmfunctionprivileger gult"<sscrmiveleatity "> property="id" column="id"/><result property="createId" column="create_id"/><result property="updateId" column="update_id"/><result property="createTime" column="create_time"/><result property="updateTime" column="update_time"/><result property="validity"/><result property="code" column="code"/><result property="functionName" column = "function_name"/> <result property = "parentid"column = "parent_id"/> <result property = "isleafnode"column = "is_leaf_node"/> <result property = "subsystemid"column = "sub_system_id"/<result property = "ishidden"column = "is_hidden" "ishidden" "ishidden" "is_hidden"/<result property = "sub -privilegesresult"type = "lscrmfunctionprivilegeentity"extends = "lscrmfunctionprivilegeresult"> <collection property = "javatype ="java.util.arraylist "column ="id "ofttype"oftype " select = "selectSubPrivileges"> </collection> </resultmap> <resultMap id = "lscrmFunctionPrivileGetReeresult"type = "lscrmFunctionPrivileGetree"extends = "sub-privilegesresult"> <!-<Association = "functionprivilege"javatothe = "ID"javatothe = "hscrmfiviregeence". resultmap = "lscrmfunctionprivilegegult"/>-> <collection property = "privilegelist"javatype = "java.util.arraylist"column = "id"oftype = "lscrmfunctionprivilegeentity"select = "selectsubprivileges"> </resultmap> <sql id = "tbl_name"> lscrm_function_privilege </sql> <sql id = "role_privilege_tbl_name"> lscrm_role_privilege </sql> <sql id = select_sql "> select id, create_id, update_id, update, code, code, function, function, code, code, code_time. is_leaf_node, sub_system_id, is_hidden from <includ refid = "tbl_name"/> </sql> <select id = "readallprivileges"resultmap = "lscrmfunctionprivilegetEgeteresult"usecache = "true"> include refid = "secon_sql"/> sub_system_id = #{subsystemid} </if> </select> <select id = "selectSubPrivileges"resultmap = "subprivilegesresult"> <include refid = "select_sql"/> 여기서 parent_id = #{id} </select> </mapper> 패키지 com.lianshang.crm.biz.dao; com.lianshang.crm.api.dto.lscrmfunctionprivilege; import com.lianshang.crm.biz.entity.lscrmfunctionprivilegeentity; import com.lianshang.crm.biz.entity.lscrmfnectionprivelery; import org.apache.ibatis.annottations lscrmfunctionprivilegedao {list <lscrmfunctionprivilegetree> readallprivileges (@param ( "subsystemid") int subsystemid);}서비스
package com.lianshang.crm.biz.service.impl; import com.alibaba.fastjson.json; import com.google.common.base.function; import com.lianshang.common.utils.general.generalresult; import com.lianshang.common.utils.general.guautil; import; com.lianshang.common.util.general.stringUtil; import com.lianshang.crm.api.dto.lscrmfunctionprivilege; import com.lianshang.crm.api.service.lscrmfunctionprivegeservice; import com.lianshang.biz.dao.lscrmfilegedpriveeda com.lianshang.crm.biz.entity.lscrmfnectionprivilegeentity; import com.lianshang.crm.biz.entity.lscrmfunctionprivilegetree; import org.spramframework.beans.annot.AntOUREATHERIED; import java.util.arrayList; import java.util.date; java.util.list; import static com.google.common.collect.fluentiterable.from; public class lscrmfnectionerviceimpl 구현 lscrmfunctionprivilegeservice {@autowiredprivate lscrmfnectionprivilegedao lscrmfnectiongao; readallprivileges (int subsystemid) {list <lscrmfunctionprivilegetree> privilegetrees = lscrmfunctionprivilegedao.readallprivileges (subsystemid); return new generalresult <> (json.tojsonstring (privilegetrees));}}}}}}}}}.반환 결과
[{ "code": "web.permission", "createid": "sys", "createTime": 1473232840000, "functionName": "허가 관리", "숨겨진": 0, "id": "LeafNode": 0, "ParentID": 0, "PrivileGelist": "web.permission": "" " "Sys", "CreateTime": 1473232872000, "FunctionName": "사용자 관리", "Hidden": 0, "ID": "LeafNode": 0, "Parentid": "PrivileGelist": [{ "Code": "web.permission.user-mgmt.add": "CreateD": "Sys", ""CreateTime ":" " 1473232936000, "functionName": "새 사용자", "숨겨진": 0, "id": 3, "LeafNode": 1, "ParentID": 2, "PrivileGelist": [], "subsystemid": 1, "sys": "sys", "updateTime": "1473232955000,": ":": ":": ":"} ": "web.permission.user-mgmt.modify", "createid": "sys", "createTime": "functionName": "modify user", "hidden": "id": 4, "LeafNode": 1, "parentId": 2, "prodileGelist": [], "supsystemid": "", "" ": "sys", "updateTime": 1473232997000, "유효성": 1}], "subSystemId": 1, "updateId": "sys", "updateTime": 1473232900000, "유효성": 1}], "subsyStemid": "updateId": "Sys", "UpdateMe" 1473232877000, "유효성": 1}] 위의 것은 MyBatis Reading Tree Structure Data의 구현을위한 예제 코드입니다. 나는 그것이 당신에게 도움이되기를 바랍니다. 궁금한 점이 있으면 메시지를 남겨 주시면 편집자가 제 시간에 답장을 드리겠습니다. Wulin.com 웹 사이트를 지원해 주셔서 대단히 감사합니다!