当前位置: 首页 > news >正文

中国建设银行投标再什么网站上电子商务的网站建设

中国建设银行投标再什么网站上,电子商务的网站建设,净水 技术支持 东莞网站建设,网站如何调用数据库目录 前言1. 基本框架2. 实战应用 前言 对应的每个子孙属于该父亲#xff0c;这其实是数据结构的基础知识#xff0c;那怎么划分怎么归属呢 对应的基本知识推荐如下#xff1a; 【数据结构】树和二叉树详细分析#xff08;全#xff09;【数据结构】B树和B树的笔记详细… 目录 前言1. 基本框架2. 实战应用 前言 对应的每个子孙属于该父亲这其实是数据结构的基础知识那怎么划分怎么归属呢 对应的基本知识推荐如下 【数据结构】树和二叉树详细分析全【数据结构】B树和B树的笔记详细诠释 1. 基本框架 最基本的树形结构节点一个自身ID一个父亲ID一个孩子ID import java.io.Serializable; import java.util.List;public interface INodeT extends Serializable {Long getId();Long getParentId();ListT getChildren();default Boolean getHasChildren() {return false;} }其中ForestNodeManager 树形管理类主要表示如下 nodeMap 存储节点并提供了一些方法来操作节点和管理树状结构getRoot 方法用于获取合并后的树的根节点列表addParentId 方法用于标记尚未创建的父节点 import com.google.common.collect.ImmutableMap; import com.google.common.collect.Maps; import java.util.ArrayList; import java.util.List; import java.util.Map;public class ForestNodeManagerT extends INodeT {/*** 使用 ImmutableMap 存储节点其中键是节点的ID值是节点本身。* 这个映射是不可变的通过调用 Maps.uniqueIndex(nodes, INode::getId) 来创建其中 INode::getId 是获取节点ID的方法。* * parentIdMap: 使用 HashMap 存储尚未创建的父节点的ID。键是父节点的ID值是一个占位对象在这里是空字符串。*/private final ImmutableMapLong, T nodeMap;private final MapLong, Object parentIdMap Maps.newHashMap();/*** 接受一个 ListT 类型的参数 nodes并使用 Maps.uniqueIndex 方法将其转换为 ImmutableMap 存储在 nodeMap 中*/public ForestNodeManager(ListT nodes) {this.nodeMap Maps.uniqueIndex(nodes, INode::getId);}/*** 接受一个 Long 类型的节点ID作为参数然后尝试从 nodeMap 中获取对应ID的节点。* 如果存在该节点则返回节点否则返回 null。*/public INodeT getTreeNodeAt(Long id) {return this.nodeMap.containsKey(id) ? (INode)this.nodeMap.get(id) : null;}/*** 接受一个 Long 类型的父节点ID作为参数将其添加到 parentIdMap 中。* 这个方法用于标记尚未创建的父节点。*/public void addParentId(Long parentId) {this.parentIdMap.put(parentId, );}/*** 创建一个空的 ArrayList 用于存储树的根节点。* 使用 forEach 遍历 nodeMap 中的每个节点。* 对于每个节点如果其父节点ID为0表示是根节点或者父节点ID在 parentIdMap 中存在即尚未创建的父节点则将该节点添加到根节点列表中。* 最后返回根节点列表。*/public ListT getRoot() {ListT roots new ArrayList();this.nodeMap.forEach((key, node) - {if (node.getParentId() 0L || this.parentIdMap.containsKey(node.getId())) {roots.add(node);}});return roots;} }对于ForestNodeMerger合并类 包含树状结构节点的列表根据节点之间的父子关系进行合并最终返回合并后的树的根节点列表。 import java.util.List;public class ForestNodeMerger {public ForestNodeMerger() {}/*** 对于每个节点通过 getParentId() 方法获取其父节点的ID。* 如果父节点ID不等于0即有父节点则尝试通过 forestNodeManager.getTreeNodeAt() 方法获取父节点。* 如果成功获取到父节点则将当前节点添加到父节点的子节点列表中。否则说明父节点尚未被创建需要通过 forestNodeManager.addParentId() 方法添加到待创建父节点的列表中。* * 最后通过 forestNodeManager.getRoot() 方法获取合并后的树的根节点列表并返回这个列表。*/public static T extends INodeT ListT merge(ListT items) {ForestNodeManagerT forestNodeManager new ForestNodeManager(items);items.forEach((forestNode) - {if (forestNode.getParentId() ! 0L) {INodeT node forestNodeManager.getTreeNodeAt(forestNode.getParentId());if (node ! null) {node.getChildren().add(forestNode);} else {forestNodeManager.addParentId(forestNode.getId());}}});return forestNodeManager.getRoot();} }2. 实战应用 大多数本身Mapper 或者 Service基层都会帮我们实现增删改查主要是XML文件对数据库的逻辑 本身就是MybatisPlus框架推荐阅读 Springboot整合MybatisPlus的基本CRUD全MyBatis-plus从入门到精通全 与日常开发差不多主要是上述中的方法如何套用 假设要做一个菜单专栏必须由这种树形结构来管理好方便那个子类归属那个父类 对应的类别如下 Data TableName(menu) ApiModel(value Menu对象, description Menu对象) public class Menu implements Serializable {private static final long serialVersionUID 1L;/*** 主键*/JsonSerialize(using ToStringSerializer.class)ApiModelProperty(value 主键)TableId(value id, type IdType.ASSIGN_ID)private Long id;/*** 菜单父主键*/JsonSerialize(using ToStringSerializer.class)ApiModelProperty(value 菜单父主键)private Long parentId;/*** 菜单编号*/ApiModelProperty(value 菜单编号)private String code;/*** 菜单名称*/ApiModelProperty(value 菜单名称)private String name;/*** 菜单别名*/ApiModelProperty(value 菜单别名)private String alias;/*** 请求地址*/ApiModelProperty(value 请求地址)private String path;/*** 菜单资源*/ApiModelProperty(value 菜单资源)private String source;/*** 排序*/ApiModelProperty(value 排序)private Integer sort;/*** 菜单类型*/ApiModelProperty(value 菜单类型)private Integer category;/*** 操作按钮类型*/ApiModelProperty(value 操作按钮类型)private Integer action;/*** 是否打开新页面*/ApiModelProperty(value 是否打开新页面)private Integer isOpen;/*** 备注*/ApiModelProperty(value 备注)private String remark;/*** 是否已删除*/TableLogicApiModelProperty(value 是否已删除)private Integer isDeleted;Overridepublic boolean equals(Object obj) {if (this obj) {return true;}if (obj null) {return false;}Menu other (Menu) obj;if (Func.equals(this.getId(), other.getId())) {return true;}return false;}}对应与前端交互的VO类如下public class MenuVO extends Menu implements INodeMenuVO大部分这里都是这种写法 Data EqualsAndHashCode(callSuper true) ApiModel(value MenuVO对象, description MenuVO对象) public class MenuVO extends Menu implements INodeMenuVO {private static final long serialVersionUID 1L;/*** 主键ID*/JsonSerialize(using ToStringSerializer.class)private Long id;/*** 父节点ID*/JsonSerialize(using ToStringSerializer.class)private Long parentId;/*** 子孙节点*/JsonInclude(JsonInclude.Include.NON_EMPTY)private ListMenuVO children;/*** 是否有子孙节点*/JsonInclude(JsonInclude.Include.NON_EMPTY)private Boolean hasChildren;Overridepublic ListMenuVO getChildren() {if (this.children null) {this.children new ArrayList();}return this.children;}/*** 上级菜单*/private String parentName;/*** 菜单类型*/private String categoryName;/*** 按钮功能*/private String actionName;/*** 是否新窗口打开*/private String isOpenName; }对应的懒加载实现类主要如下 Overridepublic ListMenuVO lazyList(Long parentId, MapString, Object param) {if (Func.isEmpty(Func.toStr(param.get(parentId)))) {parentId null;}return baseMapper.lazyList(parentId, param);}对应获取树形结构的实现类如下 Overridepublic ListMenuVO tree() {return ForestNodeMerger.merge(baseMapper.tree());}其中涉及Mapper的方法主要在xml文件中实现 select idtree resultMaptreeNodeResultMapselect id, parent_id, name as title, id as value, id as key from menu where is_deleted 0 and category 1 /select
http://www.pierceye.com/news/311489/

相关文章:

  • iis7.5添加php网站wordpress内容页自定义字段
  • 设计公司做网站价格图片网站收录
  • 网站做315认证广州中医药资源门户网站
  • 线上营销网站设计网站着陆页有多少个
  • 天津通用网站建设方案聊城做网站的地方
  • 政务网站建设合同dw个人网站模板下载
  • 广州网站优化服务商企业网站建设一站式服务
  • 蓝海电商怎么做广州短视频seo哪家好
  • 泸州住房和城乡建设厅网站怎么自己做微网站吗
  • 做网站上传图片自己怎么建设网站首页
  • 西安空调销售网站建设wordpress 谷歌地图
  • 网站建设投标书范本wordpress防广告屏蔽
  • 设计个人网站的步骤建设工程合同无效的情形有哪些
  • 网站竞争对手的选定一般参考什么标准的建设网站长沙
  • 通州个人做网站营销型网站建设开发
  • 乌海市网站建设基于asp的网络课程网站开发
  • 关掉自己做的网站网页设计与制作服务公司
  • 视频相亲网站开发成本分类信息网站推广的意义
  • 域名和网站网站开发项目视频
  • 色流网站怎么做东营建筑信息网
  • 做能支付的网站贵吗网络安全工程师考证
  • 下载类网站开发条件环球资源网成立时间
  • 客户如何找到做网站宣传的律师免费虚拟主机空间
  • 点击网站出现微信二维码的链接怎么做网架制造厂
  • 服装网站建设环境分析一家专门做房产特卖的网站
  • 网站推广方式方法品牌建设的阶段和步骤是什么
  • 游戏开发平台seo的定义
  • 北京住房和城乡建设部网站官网可信赖的购物网站建设
  • 网站百度一直没有收录热狗网站关键词优化
  • 视频网站开发价格本地app开发公司电话