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

网站免费加速器用户体验较好的网站

网站免费加速器,用户体验较好的网站,做网站网站多久会被抓,wordpress怎样加入代码目录 项目场景#xff1a;三类分类部分不显示问题描述#xff1a;数据库序号128后的目录不显示原因分析#xff1a; 数据库JAVA后端代码#xff1a;后端接口 解决方案#xff1a;1 数据库序号问题2 JAVA层面1 递归改成非递归写法2重新写接口#xff1a; 查询cat_id为… 目录 项目场景三类分类部分不显示问题描述数据库序号128后的目录不显示原因分析 数据库JAVA后端代码后端接口 解决方案1 数据库序号问题2 JAVA层面1 递归改成非递归写法2重新写接口 查询cat_id为128的子目录 解决方法加上(long)向下转型自动拆箱总结: 递归使用要慎重自动装箱的隐藏机制需要熟悉 项目场景三类分类部分不显示 实现ElementUI中三级分类的功能发现没有前端三级目录的二级目录可以新建三级目录数据库中也有数据但是无法在前端显示后端的接口没有返回数据库的数据。 问题描述数据库序号128后的目录不显示 提示这里描述项目中遇到的问题 例如数据传输过程中数据不时出现丢失的情况偶尔会丢失一部分数据 APP 中接收数据代码 Overridepublic void run() {bytes mmInStream.read(buffer);mHandler.obtainMessage(READ_DATA, bytes, -1, buffer).sendToTarget();}原因分析 数据库JAVA后端 提示例如在骑行运动耳机目录之后新建的目录前端界面显示新建成功数据库也有数据但是不会显示在前端。 数据库中新建数据成功但是在骑行运动中不会显示出这个新建的婴儿车三级目录。 IDEA 日志打印记录显示插入成功 使用sql查询 parent_cid为128的二级目录 再使用接口测试前端界面没有婴儿车 代码 后端接口 //controller层/*** 查出所有分类以及子分类以树形结构组装起来*/RequestMapping(/list/tree)public R list(){ListCategoryEntity entities categoryService.listWithTree();return R.ok().put(data, entities);}//接口Service层ListCategoryEntity listWithTree(); Service的具体实现 Overridepublic ListCategoryEntity listWithTree() {//1、查出所有分类ListCategoryEntity entities baseMapper.selectList(null);//2、 组装成父子的树形结构//2.1) 找到所有一级分类(父分类id为0ListCategoryEntity level1Menus entities.stream().filter(categoryEntity -categoryEntity.getCatLevel() 1).map((menu)-{ // System.out.println(menu);menu.setChildren(getChildrens(menu,entities)); // menu.setChildren(getSubtreeById(menu.getCatId(), entities));return menu;}).sorted((menu1,menu2)-{return (menu1.getSort()null?0:menu1.getSort()) - (menu2.getSort()null?0:menu2.getSort());}).collect(Collectors.toList());return level1Menus;}//递归查找所有菜单的子菜单private ListCategoryEntity getChildrens(CategoryEntity root,ListCategoryEntity all){//1.找到当前菜单的子菜单(每个子菜单还有子菜单) // StreamCategoryEntity categoryEntityStream all.stream().filter(entity - (long)entity.getParentCid() (long)root.getCatId()); //出bug语句StreamCategoryEntity categoryEntityStream all.stream().filter(entity - entity.getParentCid() root.getCatId());StreamCategoryEntity mapEntityStream categoryEntityStream.map(item - {item.setChildren(getChildrens(item,all));return item;});ListCategoryEntity children mapEntityStream.sorted((menu1,menu2)-{return (menu1.getSort()null?0:menu1.getSort()) - (menu2.getSort()null?0:menu2.getSort());}).collect(Collectors.toList());return children;解决方案 提示CatID为128以后的二级目录都不显示数据库中有的三级目录 1 数据库序号问题 DROP TABLE IF EXISTS pms_category;CREATE TABLE pms_category (cat_id bigint(20) NOT NULL AUTO_INCREMENT COMMENT 分类id,name char(50) DEFAULT NULL COMMENT 分类名称,parent_cid bigint(20) DEFAULT NULL COMMENT 父分类id,cat_level int(11) DEFAULT NULL COMMENT 层级,show_status tinyint(4) DEFAULT NULL COMMENT 是否显示[0-不显示1显示],sort int(11) DEFAULT NULL COMMENT 排序,icon char(255) DEFAULT NULL COMMENT 图标地址,product_unit char(50) DEFAULT NULL COMMENT 计量单位,product_count int(11) DEFAULT NULL COMMENT 商品数量,PRIMARY KEY (cat_id) ) ENGINEInnoDB AUTO_INCREMENT1424 DEFAULT CHARSETutf8mb4 COMMENT商品三级分类;AUTO_INCREMENT1424 原来的数据库是1434改成了1424让cat_id自增 序号不断层问题还是解决。 开始以为是数据库很多序号乱码后面才发现是128二级目录开始出问题。 2 JAVA层面 1 递归改成非递归写法 //原版代码 // ListCategoryEntity children all.stream().filter(categoryEntity - { // return categoryEntity.getParentCid() root.getCatId(); // }).map(categoryEntity-{ // //2.利用映射递归查找 子菜单的子菜单 // categoryEntity.setChildren(getChildrens(categoryEntity,all)); // return categoryEntity; // }).sorted((menu1,menu2)-{ // //3.对当前菜单进行排序升序排序 // return (menu1.getSort()null?0:menu1.getSort()) - (menu2.getSort()null?0:menu2.getSort()); // }).collect(Collectors.toList()); // // return children;//非递归写法 // ListCategoryEntity result new ArrayList(); // for (int i 0; i all.size(); i){ // CategoryEntity entity all.get(i); // if (entity.getParentCid() root.getCatId()) { // result.add(entity); // } // } // System.out.println(result); // // for (int i 0; i result.size(); i){ // CategoryEntity current result.get(i); // ListCategoryEntity sub new ArrayList(); // for (int j 0; j all.size(); j){ // CategoryEntity entity all.get(j); // if (entity.getParentCid() current.getCatId()) { // ListCategoryEntity subsub new ArrayList(); // for (int k 0; k all.size(); k){ // CategoryEntity subEntity all.get(k); // if (subEntity.getParentCid() entity.getCatId()){ // subsub.add(subEntity); // } // } // entity.setChildren(subsub); // sub.add(entity); // } // } // current.setChildren(sub); // } // // return result;还是不行 2重新写接口 查询cat_id为128的子目录 //Controller层/*** 信息*/RequestMapping(/info/{catId})//RequiresPermissions(product:category:info)public R info(PathVariable(catId) Long catId) {CategoryEntity category categoryService.getById(catId);return R.ok().put(data, category);}//Service层ListCategoryEntity getSubtreeById(long catId);接口实现功能 Overridepublic ListCategoryEntity getSubtreeById(long catId) {ListCategoryEntity entities baseMapper.selectList(null);ListCategoryEntity filterList entities.stream().filter(item - item.getParentCid() catId).map(item - {item.setChildren(getSubtreeById(item.getCatId()));return item;}).collect(Collectors.toList());return filterList;}前端端口测试 直接通过id的方式能够查询到父ID为128的所有目录既婴儿车的父目录找到了。 后续按照这个思路重新写程序能够实现三级分类展现所有子目录的功能但是对bug产生的原因不太清晰 解决方法加上(long)向下转型自动拆箱 改变一行代码 就是因为递归调用了太多次自动装箱成Long对象但是Long对象装箱的源码实现跟128有很大的关系 下面解释中的Integer是一个道理(Integer) 128 (Integer) 128 为false所以128之后的二级目录都不满足这个判断所以他们的三级目录无法加载 具体代码实现可以看引用 Integer类 -128~127 之间的值都是直接从缓存中取出的(Integer)127 (Integer)127两边装箱后实际指向堆内存中同一个对象大于127 后就new一个新的对象返回。(Integer)128 (Integer)128装箱为引用类型后没有做缓存指向堆内存中不同对象所以比较结果为false。至于为什么要缓存若不缓存每次都要new一个新对象资源消耗多所以缓存一些常用的数来减少资源损耗。 ———————————————— 版权声明本文为CSDN博主「有时候我也会」的原创文章遵循CC 4.0 BY-SA版权协议转载请附上原文出处链接及本声明。 原文链接https://blog.csdn.net/weixin_43849277/article/details/108275997 总结: 递归使用要慎重自动装箱的隐藏机制需要熟悉 开发过程中不要随便用递归Debug不好调整遇到其他问题结合真的是头皮发麻本文只是精简的讲述了核心找bug的过程但是Debug打各种条件断点查看Tomcat源码StackFlow看英文等等困扰了我一天的bug终于跟冠哥合理解决了 推荐看一下阿里开发手册对递归使用的建议
http://www.w-s-a.com/news/464918/

相关文章:

  • 建设外贸商城网站制作如何建设景区旅游网站
  • 网站建设服务的具体条件怎么建设一个响应式网站
  • 做flash的网站wordpress设置前台投稿
  • 商务网站开发文档迅雷资源做下载网站
  • 无极磁铁网站如何把地图放到自己做的网站上
  • 青浦赵巷网站建设公司网站开发需求文档
  • 苏州网站建设的公司哪家好无锡网站制作那些
  • 装饰公司网站模板科技成果鉴定机构
  • 给公司做的东西放到私人网站上十堰为企业做网站的单位
  • 手机网站建设价钱手机自己做网站
  • 网站建设属于哪种公司电子商务查询网站
  • 工程建设标准强制性条文最新版本网站关键词排名优化应该怎么做
  • 网站网页设计内容品牌高端网站建设公司
  • 网站开发报价 福州中国建筑网官网手机版
  • 网站 图片 自动往右移专门做定制化的网站
  • 最好用的cms手机百度关键词排名 网站优化软件
  • 凉山州城乡规划建设局网站长沙网站建设哪家强
  • 广州网站开发创意设计公司企业自己怎么制作网站首页
  • 曲靖 曲靖网站建设软件(app)开发wordpress 没有远程发布
  • 官方网站开发与定制网站建设技术是干嘛的
  • 昆明网站建设工作室网站菜单导航怎么做的
  • 南京网站做的好的公司猪八戒网站做推广怎么样
  • 建站收费标准福州网站搭建
  • 做防护用品的网站欧美网站建设风格特点
  • 龙华做网站联系电话北京软件开发培训班
  • 做网站运营有前途网站的建设与管理的心得体会
  • 河南网站推广怎么做网页制作免费下载
  • 网站如何屏蔽中国ip商丘网站建设的公司哪家好
  • 东莞广告公司东莞网站建设价格鹤壁哪有做网站的
  • 门户网站界面设计logo设计商标设计