最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

mybatis實(shí)現(xiàn)讀取樹結(jié)構(gòu)數(shù)據(jù)實(shí)例代碼

 更新時(shí)間:2016年09月09日 11:36:37   作者:imaging123  
這篇文章主要介紹了mybatis實(shí)現(xiàn)讀取樹結(jié)構(gòu)數(shù)據(jù)實(shí)例代碼的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下

mybatis實(shí)現(xiàn)讀取樹結(jié)構(gòu)數(shù)據(jù)詳細(xì)介紹如下所示:

表結(jié)構(gòu)

CREATE TABLE `lscrm_function_privilege` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '編號(hào)',
`create_id` varchar(30) NOT NULL DEFAULT 'sys',
`update_id` varchar(30) NOT NULL DEFAULT 'sys',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '創(chuàng)建時(shí)間',
`update_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改時(shí)間',
`validity` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '有效性 1.有效 0. 無效',
`code` varchar(50) NOT NULL DEFAULT '' COMMENT '編碼',
`function_name` varchar(50) NOT NULL DEFAULT '' COMMENT '名稱',
`parent_id` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT '父節(jié)點(diǎn)',
`is_leaf_node` tinyint(3) unsigned NOT NULL DEFAULT '1' COMMENT '是否葉子節(jié)點(diǎn)(葉子結(jié)點(diǎn) 就是度為0的結(jié)點(diǎn) 就是沒有子結(jié)點(diǎn)的結(jié)點(diǎn)),在添加子節(jié)點(diǎn)時(shí),需要將parent_id is_leaf_node 設(shè)置成0',
`sub_system_id` int(10) unsigned NOT NULL DEFAULT '0' COMMENT '所屬子系統(tǒng)',
`is_hidden` tinyint(3) unsigned NOT NULL DEFAULT '0' COMMENT 'UI是否隱藏,ui上不展示',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=22 DEFAULT CHARSET=utf8 COMMENT='子code 按照父code 來創(chuàng)建\r\n如: customer.add';

構(gòu)造數(shù)據(jù)

INSERT INTO `lscrm_function_privilege` VALUES ('1', 'sys', 'sys', '2016-09-07 15:20:40', '2016-09-07 15:21:17', '1', 'WEB.PERMISSION', '權(quán)限管理', '0', '0', '1', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('2', 'sys', 'sys', '2016-09-07 15:21:12', '2016-09-07 15:21:40', '1', 'WEB.PERMISSION.USER-MGMT', '用戶管理', '1', '0', '1', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('3', 'sys', 'sys', '2016-09-07 15:22:16', '2016-09-07 15:22:35', '1', 'WEB.PERMISSION.USER-MGMT.ADD', '新增用戶', '2', '1', '1', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('4', 'sys', 'sys', '2016-09-07 15:23:17', '2016-09-07 15:23:17', '1', 'WEB.PERMISSION.USER-MGMT.MODIFY', '修改用戶', '2', '1', '1', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('5', 'sys', 'sys', '2016-09-07 16:10:37', '2016-09-07 16:10:42', '1', 'APP.CUSTOMER', '客戶管理', '0', '0', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('6', 'sys', 'sys', '2016-09-07 16:11:06', '2016-09-07 16:11:20', '1', 'APP.CUSTOMER.ADD', '添加客戶', '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');
INSERT INTO `lscrm_function_privilege` VALUES ('8', 'sys', 'sys', '2016-09-07 16:12:33', '2016-09-07 16:14:10', '1', 'APP.CUSTOMER.VIEWDETAIL', '查看客戶詳情', '5', '1', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('9', 'sys', 'sys', '2016-09-07 16:12:33', '2016-09-07 16:12:33', '1', 'APP.CUSTOMER.ADDVISIT', '添加拜訪', '5', '1', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('10', 'sys', 'sys', '2016-09-07 16:13:59', '2016-09-07 16:14:17', '1', 'APP.CUSTOMER.VIEWDEMAND', '查看客戶采購(gòu)需求', '5', '1', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('11', 'sys', 'sys', '2016-09-07 16:13:59', '2016-09-07 16:14:17', '1', 'APP.CUSTOMER.VIEWORDER', '查看客戶訂單', '5', '1', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('12', 'sys', 'sys', '2016-09-07 16:13:59', '2016-09-07 16:14:17', '1', 'APP.CUSTOMER.VIEWSHOP', '查看客戶訂單', '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', '查看搶單列表', '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', '快捷開店', '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', '需求管理', '0', '0', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('17', 'sys', 'sys', '2016-09-07 16:23:21', '2016-09-07 16:23:21', '1', 'APP.DEMAND.PRIVATE', '私海需求', '15', '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', '找版反饋', '15', '1', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('19', 'sys', 'sys', '2016-09-07 16:24:47', '2016-09-07 16:24:47', '1', 'APP.DEMAND.PUSHSEARCH', '推送賣家搜索', '15', '1', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('20', 'sys', 'sys', '2016-09-07 16:25:56', '2016-09-07 16:25:56', '1', 'APP.KPI', '績(jī)效管理', '0', '0', '2', '0');
INSERT INTO `lscrm_function_privilege` VALUES ('21', 'sys', 'sys', '2016-09-07 16:27:02', '2016-09-07 16:27:02', '1', 'APP.KPI.VIEWDATA', '查看績(jī)效數(shù)據(jù)', '20', '1', '2', '0');

實(shí)體bean

package 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 {
/**編號(hào)**/
private int id;
private String createId;
private String updateId;
/**創(chuàng)建時(shí)間**/
private Date createTime;
/**修改時(shí)間**/
private Date updateTime=new Date();
/**有效性 1.有效 0. 無效**/
private int validity=1;
/**編碼**/
private String code;
/**名稱**/
private String functionName;
/**父節(jié)點(diǎn)**/
private int parentId;
/**是否葉子節(jié)點(diǎn)(葉子結(jié)點(diǎn) 就是度為0的結(jié)點(diǎn) 就是沒有子結(jié)點(diǎn)的結(jié)點(diǎn)),在添加子節(jié)點(diǎn)時(shí),需要將parent_id is_leaf_node 設(shè)置成0**/
private int isLeafNode;
/**所屬子系統(tǒng)**/
private int subSystemId;
/**UI是否隱藏,ui上不展示**/
private int isHidden=1;
private List<LscrmFunctionPrivilegeEntity> privilegeList = new ArrayList<>();
//get()/set()省略。。。
}
package com.lianshang.crm.biz.entity;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
/**
* Created by zhenyu on 2016/9/8.
*/
public class LscrmFunctionPrivilegeTree {
/**編號(hào)**/
private int id;
private String createId;
private String updateId;
/**創(chuàng)建時(shí)間**/
private Date createTime;
/**修改時(shí)間**/
private Date updateTime=new Date();
/**有效性 1.有效 0. 無效**/
private int validity=1;
/**編碼**/
private String code;
/**名稱**/
private String functionName;
/**父節(jié)點(diǎn)**/
private int parentId;
/**是否葉子節(jié)點(diǎn)(葉子結(jié)點(diǎn) 就是度為0的結(jié)點(diǎn) 就是沒有子結(jié)點(diǎn)的結(jié)點(diǎn)),在添加子節(jié)點(diǎn)時(shí),需要將parent_id is_leaf_node 設(shè)置成0**/
private int isLeafNode;
/**所屬子系統(tǒng)**/
private int subSystemId;
/**UI是否隱藏,ui上不展示**/
private int isHidden=1;
private List<LscrmFunctionPrivilegeEntity> privilegeList = new ArrayList<>();
}

mapper配置

<?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">
<cache
eviction="FIFO"
flushInterval="60000"
size="1024"
readOnly="true"/>
<resultMap id="LscrmFunctionPrivilegeResult" type="LscrmFunctionPrivilegeEntity">
<id 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" column="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"/>
</resultMap>
<resultMap id="SubPrivilegesResult" type="LscrmFunctionPrivilegeEntity" extends="LscrmFunctionPrivilegeResult">
<collection property="privilegeList" javaType="java.util.ArrayList" column="id"
ofType="LscrmFunctionPrivilegeEntity" select="selectSubPrivileges"></collection>
</resultMap>
<resultMap id="LscrmFunctionPrivilegeTreeResult" type="LscrmFunctionPrivilegeTree"
extends="SubPrivilegesResult">
<!--<association property="functionPrivilege" column="id" javaType="LscrmFunctionPrivilegeEntity" resultMap="LscrmFunctionPrivilegeResult"/>-->
<collection property="privilegeList" javaType="java.util.ArrayList" column="id"
ofType="LscrmFunctionPrivilegeEntity" select="selectSubPrivileges"></collection>
</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, create_time, update_time, validity, code, function_name, parent_id,
is_leaf_node, sub_system_id, is_hidden from
<include refid="tbl_name"/>
</sql>
<select id="readAllPrivileges" resultMap="LscrmFunctionPrivilegeTreeResult" useCache="true">
<include refid="select_sql"/>
WHERE parent_id = 0
<if test="subSystemId > 0 ">
AND sub_system_id= #{subSystemId}
</if>
</select>
<select id="selectSubPrivileges" resultMap="SubPrivilegesResult">
<include refid="select_sql"/>
WHERE parent_id = #{id}
</select>
</mapper>
package com.lianshang.crm.biz.dao;
import com.lianshang.crm.api.dto.LscrmFunctionPrivilege;
import com.lianshang.crm.biz.entity.LscrmFunctionPrivilegeEntity;
import com.lianshang.crm.biz.entity.LscrmFunctionPrivilegeTree;
import org.apache.ibatis.annotations.Param;
import java.util.List;
public interface LscrmFunctionPrivilegeDao {
List<LscrmFunctionPrivilegeTree> readAllPrivileges(@Param("subSystemId")int subSystemId);
}

service

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.GuavaUtil;
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.dao.LscrmFunctionPrivilegeDao;
import com.lianshang.crm.biz.entity.LscrmFunctionPrivilegeEntity;
import com.lianshang.crm.biz.entity.LscrmFunctionPrivilegeTree;
import org.springframework.beans.factory.annotation.Autowired;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import static com.google.common.collect.FluentIterable.from;
public class LscrmFunctionPrivilegeServiceImpl implements LscrmFunctionPrivilegeService {
@Autowired
private LscrmFunctionPrivilegeDao lscrmFunctionPrivilegeDao;
@Override
public GeneralResult<String> readAllPrivileges(int subSystemId) {
List<LscrmFunctionPrivilegeTree> privilegeTrees = lscrmFunctionPrivilegeDao.readAllPrivileges(subSystemId);
return new GeneralResult<>(JSON.toJSONString(privilegeTrees));
}
}

返回結(jié)果

[
{
"code": "WEB.PERMISSION",
"createId": "sys",
"createTime": 1473232840000,
"functionName": "權(quán)限管理",
"hidden": 0,
"id": 1,
"leafNode": 0,
"parentId": 0,
"privilegeList": [
{
"code": "WEB.PERMISSION.USER-MGMT",
"createId": "sys",
"createTime": 1473232872000,
"functionName": "用戶管理",
"hidden": 0,
"id": 2,
"leafNode": 0,
"parentId": 1,
"privilegeList": [
{
"code": "WEB.PERMISSION.USER-MGMT.ADD",
"createId": "sys",
"createTime": 1473232936000,
"functionName": "新增用戶",
"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": "修改用戶",
"hidden": 0,
"id": 4,
"leafNode": 1,
"parentId": 2,
"privilegeList": [],
"subSystemId": 1,
"updateId": "sys",
"updateTime": 1473232997000,
"validity": 1
}
],
"subSystemId": 1,
"updateId": "sys",
"updateTime": 1473232900000,
"validity": 1
}
],
"subSystemId": 1,
"updateId": "sys",
"updateTime": 1473232877000,
"validity": 1
}
]

以上所述是小編給大家介紹的mybatis實(shí)現(xiàn)讀取樹結(jié)構(gòu)數(shù)據(jù)實(shí)例代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!

相關(guān)文章

  • java中用String.Join美化代碼的實(shí)例講解

    java中用String.Join美化代碼的實(shí)例講解

    在本篇文章里小編給大家整理的是一篇關(guān)于java中用String.Join美化代碼的實(shí)例講解內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-12-12
  • 解決java.lang.IllegalArgumentException異常問題

    解決java.lang.IllegalArgumentException異常問題

    這篇文章主要介紹了解決java.lang.IllegalArgumentException異常問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java11中的新增字符串APIs使用實(shí)例探究

    Java11中的新增字符串APIs使用實(shí)例探究

    這篇文章主要為大家介紹了Java11中的新增字符串APIs使用實(shí)例探究,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2024-01-01
  • Java常用 Date 時(shí)間格式化、Calender日歷、正則表達(dá)式的用法小結(jié)

    Java常用 Date 時(shí)間格式化、Calender日歷、正則表達(dá)式的用法小結(jié)

    SimpleDateFormat?是Java中用于格式化和解析日期的類,它允許你將日期對(duì)象轉(zhuǎn)換為特定格式的字符串,或者將特定格式的字符串轉(zhuǎn)換為日期對(duì)象,這篇文章主要介紹了Java常用 Date 時(shí)間格式化、Calender日歷、正則表達(dá)式的用法,需要的朋友可以參考下
    2024-12-12
  • java文件上傳至ftp服務(wù)器的方法

    java文件上傳至ftp服務(wù)器的方法

    這篇文章主要為大家詳細(xì)介紹了java文件上傳至ftp服務(wù)器的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-01-01
  • Spring MVC 處理一個(gè)請(qǐng)求的流程

    Spring MVC 處理一個(gè)請(qǐng)求的流程

    Spring MVC是Spring系列框架中使用頻率最高的部分。不管是Spring Boot還是傳統(tǒng)的Spring項(xiàng)目,只要是Web項(xiàng)目都會(huì)使用到Spring MVC部分。因此程序員一定要熟練掌握MVC部分。本篇博客簡(jiǎn)要分析Spring MVC處理一個(gè)請(qǐng)求的流程。
    2021-02-02
  • SpringBoot項(xiàng)目使用mybatis-plus代碼生成的實(shí)例詳解

    SpringBoot項(xiàng)目使用mybatis-plus代碼生成的實(shí)例詳解

    mybatis-plus是mybatis的增強(qiáng),不對(duì)mybatis做任何改變,涵蓋了代碼生成,自定義ID生成器,快速實(shí)現(xiàn)CRUD,自動(dòng)分頁,邏輯刪除等功能。本文就來講講SpringBoot項(xiàng)目如何使用mybatis-plus實(shí)現(xiàn)代碼生成,需要的可以了解一下
    2022-10-10
  • java實(shí)現(xiàn)設(shè)置靜態(tài)IP地址和網(wǎng)關(guān)

    java實(shí)現(xiàn)設(shè)置靜態(tài)IP地址和網(wǎng)關(guān)

    在現(xiàn)代企業(yè)網(wǎng)絡(luò)和嵌入式系統(tǒng)中,靜態(tài)?IP?配置的需求非常普遍,本項(xiàng)目旨在使用純?Java的方式,實(shí)現(xiàn)對(duì)指定網(wǎng)卡的靜態(tài)?IP,子網(wǎng)掩碼,網(wǎng)關(guān),DNS等網(wǎng)絡(luò)參數(shù)的配置,需要的可以了解下
    2025-06-06
  • Java中Stream?Filter多條件篩選過濾代碼舉例

    Java中Stream?Filter多條件篩選過濾代碼舉例

    這篇文章主要給大家介紹了關(guān)于Java中Stream?Filter多條件篩選過濾的相關(guān)資料,Java Stream中的filter方法可以使用多個(gè)條件來過濾數(shù)據(jù),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2023-12-12
  • Java簡(jiǎn)單實(shí)現(xiàn)調(diào)用命令行并獲取執(zhí)行結(jié)果示例

    Java簡(jiǎn)單實(shí)現(xiàn)調(diào)用命令行并獲取執(zhí)行結(jié)果示例

    這篇文章主要介紹了Java簡(jiǎn)單實(shí)現(xiàn)調(diào)用命令行并獲取執(zhí)行結(jié)果,結(jié)合實(shí)例形式分析了Java調(diào)用ping命令并獲取執(zhí)行結(jié)果相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08

最新評(píng)論

平南县| 盐源县| 五家渠市| 白河县| 呼和浩特市| 江源县| 邢台市| 迁西县| 隆子县| 南乐县| 塘沽区| 久治县| 黄山市| 铁力市| 盈江县| 沙洋县| 滨州市| 阿瓦提县| 乌拉特前旗| 宝坻区| 杨浦区| 贺兰县| 岳西县| 九龙坡区| 正蓝旗| 分宜县| 阳西县| 辛集市| 安岳县| 海原县| 疏附县| 峨山| 同江市| 靖州| 肇庆市| 云南省| 广南县| 伊川县| 河西区| 清远市| 乡城县|