La implementación de MyBatis lee datos de estructura de árboles en detalle de la siguiente manera:
Estructura de tabla
Crear tabla `lscrm_function_privilege` (` id` int (10) Unsigned no null auto_incement comment 'número', `create_id` varchar (30) no nulo 'sys',` uply_id` varchar (30) no null predeterminado 'sys', `create_time` Timestamp no null sys uplit_timest` `create` ° ', `° Timest upt` `sys',` `create_Time 'Timestamp no null. NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'Modification time',`validity` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT 'Validity 1. Valid 0. Invalid',`code` varchar(50) NOT NULL DEFAULT '' COMMENT 'Coding',`function_name` varchar(50) NOT NULL DEFAULT '' COMMENT 'name',`parent_id` tinyint(3) unsigned NOT NULL predeterminado '0' comentario 'nodo principal', `is_leaf_node` Tinyint (3) Unsigned no NULL predeterminado '1' comentario 'es el nodo de hoja (un nodo de hoja es un nodo con un grado de 0, que es un nodo sin un nodo infantil). '0' comentario 'subsistema', `is_hidden` tinyint (3) sin firmar no nulo predeterminado '0' comentario '¿está oculto la interfaz de usuario? No se muestra en ui ', clave primaria (`id`)) motor = innoDB Auto_Increment = 22 default Charset = utf8 comment =' sub-código create /r /n de acuerdo con el código principal, como: customer.add ';
Construir datos
Inserte en `lscrm_function_privilege` valores ('1', 'sys', 'sys', '2016-09-07 15:20:40', '2016-09-07 15:21:17', '1', 'web.permission', 'gestión de permisos', '0', '0', '1', '); `lscrm_function_privilege` valores ('2', 'sys', 'sys', '2016-09-07 15:21:12', '2016-09-07 15:21:40', '1' ',' web.permission.user-mgmt ',' gestión de usuarios ',' 1 ',' 0 ',' ',' 1 '', ',' 0 '0') `lscrm_function_privilege` valores ('3', 'sys', 'sys', '2016-09-07 15:22:16', '2016-09-07 15:22:35', '1' ',' web.permission.user-mgmt.add ',' agregar usuarios ',' 2 ',' 1 ',' 1 ',', '' 0 '0' 0 ' `lscrm_function_privilege` valores ('4', 'sys', 'sys', '2016-09-07 15:23:17', '2016-09-07 15:23:17', '1', 'web.permission.user-mgmt.modify', 'modificar el usuario', '2', '1,' 1 '' ',' 0 '); `lscrm_function_privilege` valores ('5', 'sys', 'sys', '2016-09-07 16:10:37', '2016-09-07 16:10:42', '1', 'app.customer', 'gestión de clientes', '0', '0', '2', '0'); inserto a` lscRmcRmcRM ('6', 'sys', 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'APP.CUSTOMER.ADD', 'Add Customer', '5', '1', '2', '0');INSERT INTO 'lscrm_function_privilege` VALUES ('7', 'sys', 'Sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'app.customer.modify', '5', '1', '2', '0'); inserte en `lscrm_functt_privilege` valores ('8', ',', ',' sys ',' 2012-09-09-09-09-09-09-09-09-09-09-09 16:12:33 ',' 2016-09-07 16:14:10 ',' 1 '', 'app.customer.viewDetail', 'Ver detalles del cliente', '5', '1', '2', '0'); Inserte en `lScrm_function_Privilege` valores ('9', ',', ',', ',' 2016-09-09 16:12:12:12:12:12:12:10 '2016-09-07 16:12:33', '1' ',' app.customer.addVisit ',' add visit ',' 5 ',' 1 ',' 2 ',' 0 '); inserte en' lscrm_function_privilege` valores ('10', 'sys', 'sys', '2016-09-09-07 16:13:59', '2016-09-09-09-09-09-09-09-09-09-09-09-09 16:14:17 ',' 1 ',' app.customer.viewDemand ',' ver requisitos de adquisición de clientes ',' 5 ',' 1 ',' 2 ',' 0 '); inserte en `lscrm_function_privilege` valores (' 11 ',' sys ',' sys ',' 2016-09-07 16:13:59 ',' 2016-09-09-09-09 16:14:17 ',' 1 ',' app.customer.vieworder ',' ver el orden del cliente ',' 5 ',' 1 ',' 2 ',' 0 '); insertar en `lscrm_function_privilege` valores (' 12 ',' sys ',' sys ',' 2016-09-07 16:13:59 ',' 2016-09-09-09 16:14:14:14:14: '1', 'APP.CUSTOMER.VIEWSHOP', 'View Customer Order', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('13', 'sys', 'sys', '2016-09-07 16:17:28', '2016-09-07 16:18:39', '1', 'APP.CUSTOMER.VIEWREPLY', 'View order grab list', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('14', 'sys', 'sys', '2016-09-07 16:19:32', '2016-09-07 16:23:51', '1', 'APP.CUSTOMER.FASTOPENSHOP', 'Quick Store Opening', '5', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('15', 'sys', 'sys', '2016-09-07 16:22:33', '2016-09-07 16:22:33', '1', 'APP.DEMAND', 'Demand Management', '0', '0', '2', '0'); insertar en `lScrm_function_privilege` valores ('17', 'sys', 'sys', '2016-09-07 16:23:21', '2016-09-07 16:23:21', '1', 'APP.Demand.Demand. '1', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('18', 'sys', 'sys', '2016-09-07 16:23:58', '2016-09-07 16:23:58', '1', 'APP.DEMAND.FEEDBACK', 'Page Feedback', '15', '1', '2', '0');INSERT INTO `lscrm_function_privilege` VALUES ('19', 'sys', 'sys', '2016-09-07 16:24:47', '1', 'APP.DEMAND.PUSHSEARCH', 'Pull Seller Search', '15', '1', '2', '0');INSERT INTO '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1', '1');INSERT INTO `lscrm_function_privilege` VALUES ('21', '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 ',' Ver datos de rendimiento ',' 20 ',' 1 ',' 2 ',' 0 ');Frijoles de la entidad
paquete com.lianshang.crm.biz.entity; import com.google.common.base.moreObjects; import java.util.arrayList; import java.util.date; import java.util.list; public class lScrmfunctionPrivileGeEntity {/** number **/privado intiD; privado createid; createtime;/** tiempo de modificación **/fecha privada updateTime = new Date ();/** validez 1.valid 0. inválido **/private int validez = 1;/** codificación **/código de cadena privada;/** nombre **/private string function;/** nodo parent nodo **/private int parentid;/** es el nodo de hoja de hoja es un nodo con un nodo de un nodo de un nodo de un nodo de 0 y un nodo de menores y un nodo de menores y un nodo de un grado de un grado de un nodo de un nodo de un nodo y un nodo de un nodo de un nodo de un nodo de Node de un nodo. nodos). Al agregar nodos infantiles, los platos_id is_leaf_node deben establecerse en 0 **/private int isleafnode;/** subsistema afiliado **/private int subsystemid;/** ¿Está oculto la UI? No se muestra en ui **/private int ishidden = 1; lista privada <lscrmFunctionPrivilegeEntity> privilegeList = new ArrayList <> (); // get ()/set () omitido. . . } paquete com.lianshang.crm.biz.entity; import java.util.arrayList; import java.util.date; import java.util.list;/*** creado por zhenyu en 2016/9/8.*/public class lScrmfunctionPrivilEgetree {/** number **/privado inti -string createid; private string uptineid; Tiempo **/Fecha privada updateTime = new Date ();/** Validez 1.valid 0. Inválido **/private int validity = 1;/** codificación **/código de cadena privada;/** Nombre **/private string functionName;/** nodo principal **/private intentid;/** es el nodo de hoja (dejar nodo es un nodo con un grado de 0 y un nodo parent Al agregar nodos infantiles, los platos_id is_leaf_node deben establecerse en 0 **/private int isleafnode;/** subsistema afiliado **/private int subsystemid;/** ¿Está oculto la UI? No se muestra en UI **/Private int ishidden = 1; Lista privada <LSCRMFunctionPrivilegeEntity> privilegeList = new ArrayList <> ();}Configuración del mapeador
<? xml versión = "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.lscrmfunctionPrivilegegEn"> <cacheEviction = "fifo" flushInterval = "60000" size = "1024" readonly = "true"/> <resultmap id = "lscrmfunctionprivilegeresult" type = "lsCrmfunction 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" columna = "function_name"/> <resultado propiedad = "parentId" column = "parent_id"/> <resultado propiedad = "isleAfNode" column = "is_leaf_node"/> <resultado propiedad = "subsystemid" column = "sub_system_id"/> <resultado propiedad = "ishidden" column = "is_hidden"/> <resultado propiedad = "ishidden columna" ishidden "columna" ishidden "iss" itden "/" itden " propiedad = "subprivilegesResult" type = "lScrmFunctionPrivilegeEntity" extiende = "lscrmfunctionPrivilgeresult"> <Propiedad de colección = "privilist" javatype = "java.util.arrayList" columna = "id" de oftype = "lscrmfunciongeEntity" select = "SelectSubPrivileges"> </Collection> </resultmap> <resultmap id = "lScrmFunctionPrivilegetreeResult" type = "lscrmfunctionPriviletEntree" extends = "subprivilegesResult"> <!-<asociación propiedad = "functionpriVilege" columna = "id" javatype = "lsCrmfunctionction ceder resultMap = "lScrmFunctionPrivileGreesult"/>-> <Collection Property = "privilegeList" javatype = "java.util.arrayList" column = "id" oftype = "lscrmfunctionPrivilegeEntity" select = "selectSubprivileges"> </cop colection> </resultadoMap> <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, create_time, update_time, validity, code, function_name, parent_id, is_leaf_node, sub_system_id, is_hidden desde <include refid = "tbl_name"/> </sql> <select id = "readallPivileges" resultMap = "lScrmfunctionPrivilEngetreeReReSult" usECACHE = "true"> <include REFID = "SELECT_SQL"/> Where_id = 0 <if test = "USECACH sub_system_id = #{subsystemid} </if> </select> <select id = "selectSubPrivileges" resultMap = "subprivilegesresult"> <include refid = "select_sql"/> Where_id = #{id} </select> </mepper> paquete com.lianshang.crm.biz.dao; import; import; import; import; import; import; import; import; import; import; com.lianshang.crm.api.dto.lscrmfunctionPrivilege; import com.lianshang.crm.biz.entity.lscrmfunctionprivilegeEntity; import com.lianshang.crm.biz.entity.lscrmfunctiongiLetgetEntre; import org.apache.ibatis.annotations; importam; importar javil.util. LScrmFunctionPrivilegegEdAo {list <LSCRMFunctionPrivilEnGetree> readallPrivileges (@Param ("SubsystemID") int subsystemid);}servicio
paquete com.lianshang.crm.biz.service.impl; import com.lianshang.common.utils.general.stringutil; import com.lianshang.crm.api.dto.lscrmfunctionPrivilege; import com.lianshang.crm.api.service.lscrmfunctionprivilegeservice; import com.liAnshang.crm.biz.daDa.lscrmfunction certicion; com.lianshang.crm.biz.entity.lscrmfunctionprivilegeEntity; import com.lianshang.crm.biz.entity.lscrmfunctionpriviletetree; import og.springframework.beans.factory.annotation.aUtowired; import java.util.arraylist; import java.util.util.date; java.util.list; import static com.google.common.collect.fluentImitable.from; public class lScrmfunctionPrivilegeServiceImpl implementa lscrmfunctionPrivilegesService {@aUtoWiredPrivate lScrmFunctionPrivilegedAoo lSsSfunctionRmfunciongilegedAoO; readallPrivileges (int subsystemid) {list <lscrmfunctionPrivilEnTeGetree> privategetRees = lScrmFunctionPrivilegegEdAo.ReadAllPivileges (subsystemid); devuelve nuevo generalResult <> (json.tojsonstrons (privilegetrees));}}Resultado de retorno
[{"código": "web.permission", "createId": "sys", "createTime": 1473232840000, "functionName": "gestión de permiso", "oculta": 0, "id": 1, "LeafNode": 0, "ParentId": 0, "Privilist": ["Code": "Web.Permission.User-mission. "Sys", "CreateToTime": 1473232872000, "FunctionName": "Gestión del usuario", "oculto": 0, "id": 2, "LeafNode": 0, "ParentId": 1, "privilistista": [{"Código": "Web.Permission.User-Mgmt.add", "creación": "Sys", "CreateTime" 1473232936000,"functionName": "New user","hidden": 0,"id": 3,"leafNode": 1,"parentId": 2,"privilegeList": [],"subSystemId": 1,"updateId": "sys","updateTime": 1473232955000,"validity": 1},{"code": "WEB.PERMISSION.USER-MGMT.MODIFY","createId": "sys","createTime": 1473232997000,"functionName": "Modify user","hidden": 0,"id": 4,"leafNode": 1,"parentId": 2,"privilegeList": [],"subSystemId": 1,"updateId": "Sys", "UpdateTime": 1473232997000, "Validez": 1}], "Subsystemid": 1, "UpdateID": "Sys", "UpdateTime": 1473232900000, "Validez": 1}], "Subsystemid": 1, "UpdateID": "Sys", "UpdateTime": UpdateTime ": UpdateTime". 1473232877000, "Validez": 1}] Lo anterior es el código de ejemplo para la implementación de los datos de estructura de árbol de lectura de MyBatis introducidos a usted. Espero que te sea útil. Si tiene alguna pregunta, déjame un mensaje y el editor le responderá a tiempo. ¡Muchas gracias por su apoyo al sitio web de Wulin.com!