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

基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统

基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统

✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌

🍅文末获取项目下载方式🍅


一、项目背景介绍:

仓库管理系统 某物流公司主要从事电子类产品的配送服务,仓储在企业的整个供应链中起 着至关重要的作用,如果不能保证正确的进货和库存控制及发货,将会导致管理 费用的增加,服务质量难以得到保证,从而影响企业的竞争力。传统简单、静态 的仓储管理已无法保证企业各种资源的高效利用。如今的仓库作 业和库存控制 作 仓库管理系统 某物流公司主要从事电子类产品的配送服务,仓储在企业的整个供应链中起 着至关重要的作用

二、项目技术简介:

  1. JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
  2. SpringBoot:Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。
  3. Mybatis-Plus:MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为 简化开发、提高效率而生。
  4. shiro:Apache Shiro是一个强大且易用的Java安全框架,执行身份验证、授权、密码和会话管理。使用Shiro的易于理解的API,您可以快速、轻松地获得任何应用程序,从最小的移动应用程序到最大的网络和企业应用程序。
  5. layui:layui(谐音:类 UI) 是一套开源的 Web UI 解决方案,采用自身经典的模块化规范,并遵循原生 HTML/CSS/JS 的开发方式,常适合网页界面的快速开发。layui 区别于那些基于MVVM 底层的前端框架,它更多是面向后端开发者,无需涉足前端各种工具,只需面对浏览器本身,让一切所需要的元素与交互。

三、系统功能模块介绍:

功能模块图

四、数据库设计:

  1. bus_customer(bus_customer)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | customername | varchar(255) | NULL | |
    | zip | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | telephone | varchar(255) | NULL | |
    | connectionperson | varchar(255) | NULL | |
    | phone | varchar(255) | NULL | |
    | bank | varchar(255) | NULL | |
    | account | varchar(255) | NULL | |
    | email | varchar(255) | NULL | |
    | fax | varchar(255) | NULL | |
    | available | int(11) | NULL | |

  2. bus_goods(bus_goods)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | goodsname | varchar(255) | NULL | |
    | produceplace | varchar(255) | NULL | |
    | size | varchar(255) | NULL | |
    | goodspackage | varchar(255) | NULL | |
    | productcode | varchar(255) | NULL | |
    | promitcode | varchar(255) | NULL | |
    | description | varchar(255) | NULL | |
    | price | double | NULL | |
    | number | int(11) | NULL | |
    | dangernum | int(11) | NULL | |
    | goodsimg | varchar(255) | NULL | |
    | available | int(11) | NULL | |
    | providerid | int(11) | NULL | |

  3. bus_inport(bus_inport)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | inporttime | datetime(0) | NULL | |
    | operateperson | varchar(255) | NULL | |
    | number | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | inportprice | double | NULL | |
    | providerid | int(11) | NULL | |
    | goodsid | int(11) | NULL | |

  4. bus_outport(bus_outport)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | providerid | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | outputtime | datetime(0) | NULL | |
    | operateperson | varchar(255) | NULL | |
    | outportprice | VARCHAR(255) | NULL | |

  5. bus_provider(bus_provider)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | providername | varchar(255) | NULL | |
    | zip | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | telephone | varchar(255) | NULL | |
    | connectionperson | varchar(255) | NULL | |
    | phone | varchar(255) | NULL | |
    | bank | varchar(255) | NULL | |
    | account | varchar(255) | NULL | |
    | email | varchar(255) | NULL | |
    | fax | varchar(255) | NULL | |
    | available | int(11) | NULL | |

  6. bus_sales(bus_sales)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | customerid | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | salestime | datetime(0) | NULL | |
    | operateperson | varchar(255) | NULL | |
    | number | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | saleprice | VARCHAR(255) | NULL | |

  7. bus_salesback(bus_salesback)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | customerid | int(11) | NULL | |
    | paytype | varchar(255) | NULL | |
    | salesbacktime | datetime(0) | NULL | |
    | salebackprice | VARCHAR(255) | NULL | |

  8. sys_dept(sys_dept)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | pid | int(11) | NULL | |
    | title | varchar(255) | NULL | |
    | open | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | available | int(11) | NULL | 状态【0不可用1可用】 |
    | ordernum | int(11) | NULL | 排序码【为了调事显示顺序】 |
    | createtime | datetime(0) | NULL | |

  9. sys_loginfo(sys_loginfo)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | loginname | varchar(255) | NULL | |
    | loginip | varchar(255) | NULL | |
    | logintime | datetime(0) | NULL | |

  10. sys_notice(sys_notice)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | title | varchar(255) | NULL | |
    | content | text | NULL | |
    | createtime | datetime(0) | NULL | |
    | opername | varchar(255) | NULL | |

  11. sys_permission(sys_permission)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | pid | int(11) | NULL | |
    | type | varchar(255) | NULL | 权限类型[menu/permission] |
    | title | varchar(255) | NULL | |
    | percode | varchar(255) | NULL | 权限编码[只有type=permission才有user:view] |
    | icon | varchar(255) | NULL | |
    | href | varchar(255) | NULL | |
    | target | varchar(255) | NULL | |
    | open | int(11) | NULL | |
    | ordernum | int(11) | NULL | |
    | available | int(11) | NULL | 状态【0不可用1可用】 |

  12. sys_role(sys_role)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | name | varchar(255) | NULL | |
    | remark | varchar(255) | NULL | |
    | available | int(11) | NULL | |
    | createtime | datetime(0) | NULL | |

  13. sys_role_permission(sys_role_permission)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | rid | int(11) | NULL | |
    | pid | int(11) | NULL | |

  14. sys_user(sys_user)
    | 字段名 | 类型 | 默认值 | 列注释 |
    | --------- | ------------- | ------ | ------ |
    | id | int(11) | NULL | |
    | name | varchar(255) | NULL | |
    | loginname | varchar(255) | NULL | |
    | address | varchar(255) | NULL | |
    | sex | int(11) | NULL | |
    | remark | varchar(255) | NULL | |
    | pwd | varchar(255) | NULL | |
    | deptid | int(11) | NULL | |
    | hiredate | datetime(0) | NULL | |
    | mgr | int(11) | NULL | |
    | available | int(11) | NULL | |
    | ordernum | int(11) | NULL | |
    | type | int(255) | NULL | 用户类型[0超级管理员1,管理员,2普通用户] |
    | imgpath | varchar(255) | NULL | 头像地址 |
    | salt | varchar(255) | NULL | |

五、功能模块:

  1. 客户管理:客户管理主要存储一些仓库客户的一些基本信息,包括各种条件模糊查询,删除,编辑等功能

    客户管理

  2. 供应商管理:存款仓库系统中所有的供应商信息
    在这里插入图片描述

  3. 商品管理:此模块主要对仓库中所有商品的管理,包括商品添加,删除修改等

在这里插入图片描述

  1. 销售额统计模块:主要对商品的入库,出库金额进行统计,从而形成销售额的图表,以供管理员查看

    销售额统计模块

六、代码示例:

客户管理
@RequestMapping("loadAllCustomer")public DataGridView loadAllCustomer(CustomerVo customerVo) {IPage<Customer> page = new Page<>(customerVo.getPage(), customerVo.getLimit());QueryWrapper<Customer> queryWrapper = new QueryWrapper<>();queryWrapper.like(StringUtils.isNotBlank(customerVo.getCustomername()), "customername",customerVo.getCustomername());queryWrapper.like(StringUtils.isNotBlank(customerVo.getPhone()), "phone", customerVo.getPhone());queryWrapper.like(StringUtils.isNotBlank(customerVo.getConnectionperson()), "connectionperson",customerVo.getConnectionperson());this.customerService.page(page, queryWrapper);return new DataGridView(page.getTotal(), page.getRecords());}
供应商管理
/*** 加载所有可用的供应商*/@RequestMapping("loadAllProviderForSelect")public DataGridView loadAllProviderForSelect() {QueryWrapper<Provider> queryWrapper=new QueryWrapper<>();queryWrapper.eq("available", Constast.AVAILABLE_TRUE);List<Provider> list = this.providerService.list(queryWrapper);return new DataGridView(list);}
商品管理
@RequestMapping("loadAllGoods")public DataGridView loadAllGoods(GoodsVo goodsVo) {IPage<Goods> page = new Page<>(goodsVo.getPage(), goodsVo.getLimit());QueryWrapper<Goods> queryWrapper = new QueryWrapper<>();queryWrapper.eq(goodsVo.getProviderid()!=null&&goodsVo.getProviderid()!=0,"providerid",goodsVo.getProviderid());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getGoodsname()), "goodsname", goodsVo.getGoodsname());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getProductcode()), "productcode", goodsVo.getProductcode());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getPromitcode()), "promitcode", goodsVo.getPromitcode());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getDescription()), "description", goodsVo.getDescription());queryWrapper.like(StringUtils.isNotBlank(goodsVo.getSize()), "size", goodsVo.getSize());this.goodsService.page(page, queryWrapper);List<Goods> records = page.getRecords();for (Goods goods : records) {Provider provider = this.providerService.getById(goods.getProviderid());if(null!=provider) {goods.setProvidername(provider.getProvidername());}}return new DataGridView(page.getTotal(), records);}
销售额统计模块
	@RequestMapping("loadAllOutport")public DataGridView loadAllOutport(OutportVo outportVo) {IPage<Outport> page = new Page<>(outportVo.getPage(), outportVo.getLimit());QueryWrapper<Outport> queryWrapper = new QueryWrapper<>();queryWrapper.eq(outportVo.getProviderid()!=null&&outportVo.getProviderid()!=0,"providerid",outportVo.getProviderid());queryWrapper.eq(outportVo.getGoodsid()!=null&&outportVo.getGoodsid()!=0,"goodsid",outportVo.getGoodsid());queryWrapper.ge(outportVo.getStartTime()!=null, "outputtime", outportVo.getStartTime());queryWrapper.le(outportVo.getEndTime()!=null, "outputtime", outportVo.getEndTime());queryWrapper.like(StringUtils.isNotBlank(outportVo.getOperateperson()), "operateperson", outportVo.getOperateperson());queryWrapper.like(StringUtils.isNotBlank(outportVo.getRemark()), "remark", outportVo.getRemark());queryWrapper.orderByDesc("outputtime");this.outportService.page(page, queryWrapper);List<Outport> records = page.getRecords();for (Outport outport : records) {Provider provider = this.providerService.getById(outport.getProviderid());if(null!=provider) {outport.setProvidername(provider.getProvidername());}Goods goods = this.goodsService.getById(outport.getGoodsid());if(null!=goods) {outport.setGoodsname(goods.getGoodsname());outport.setSize(goods.getSize());}}return new DataGridView(page.getTotal(), records);}

七、项目总结:

 对于本次的系统开发来看,它主要是把我以前所学的知识进行了一次综合的应用。经过这次毕业设计的制作它主要是把我以前所学的理论知识应用到社会实践当中。通过这一次的仓库管理平台网站的设计与实现它能够有效把计算机知识与实际问题相互应用,通过计算机网络技术来解决用户生活当中的实际问题,从而提高我的编程能力。虽然在这次毕业设计当中我遇到了很多的问题和困难,但是通过不断的调试和老师的帮助让我圆满的完成了这次毕业设计。通过这次毕业设计的制作让我对计算机实际应用得到了很强的锻炼,同时也大大的提高了我的动手动脑能力,让我也感受到了其中的乐趣和喜悦。通过这次毕业设计的撰写把我在大学期间所学到的东西都应用上了,但是我觉得还是微不足道的,因为在这次毕业设计当中让我深深的了解到对于软件开发和学习理论知识它是两个完全不同的概念。但是通过这次软件的开发让我在以后的工作当中打下了良好的基础。

八、源码获取:

大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻

项目获取链接

链接点击直达:下载链接

相关文章:

基于JAVA+SpringBoot+LayUI+Shiro的仓库管理系统

基于JAVASpringBootLayUIShiro的仓库管理系统 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取项目下载方式&#x1f345; 一、项…...

金三银四面试必看,复盘字节测试开发面试:一次测试负责人岗位面试总结

最近面试了某企业的测试负责人岗位&#xff0c;历经四面&#xff0c;收获蛮多的。 这篇文章&#xff0c;我想聊聊这次面试过程中的一些经历&#xff0c;以及些许经验和教训。 岗位要求 岗位名称&#xff1a;测试负责人 岗位要求&#xff1a;1、扎实的技术以及丰富的技术项目…...

【算法自由之路】 贪心算法

贪心算法 局部最右得到全局最右难点在于如何证明局部最优可以得到全局最优堆 和 排序 是贪心算法最常用的实现算法 贪心算法作为最符合自然智慧的算法&#xff0c;思路是从小部分取最优从而获得最终的最优&#xff0c;但是难得是怎样获取部分最优才能得到全局最优。 有时候我…...

Scratch少儿编程案例-水果忍者-学生作业

专栏分享 点击跳转=>Unity3D特效百例点击跳转=>案例项目实战源码点击跳转=>游戏脚本-辅助自动化点击跳转=>Android控件全解手册点击跳转=>Scratch编程案例👉关于作者...

7.Docker Compose

Docker Compose 介绍 Docker Compose是Docker官方编排&#xff08;Orchestration&#xff09;项目之一&#xff0c;负责快速的部署分布式应用。其代码目前在https://github.com/docker/compose上开源。Compose 定位是 「定义和运行多个 Docker 容器的应用&#xff08;Definin…...

GitHub访问问题与 Steam++下载及使用(适合小白)

前言 &#x1f4dc; “ 作者 久绊A ” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴 ​ 目录 前言 一、Steam的介绍 1、大概介绍 2、详细介绍 二、Ste…...

Oracle对象——视图之简单视图与视图约束

文章目录什么是视图为什么会使用视图视图语法案例简单视图的创建更改数据基表&#xff0c;视图数据会变化么&#xff1f;更改视图数据&#xff0c;基表数据会变更么&#xff1f;带检查约束的视图结论创建只读视图&#xff08;MySQL不支持&#xff09;总结什么是视图 视图是一种…...

SAP模块常用增强总结

MM模块&#xff1a; 采购订单增强&#xff1a; BADI &#xff1a;ME_GUI_PO_CUST ME_PROCESS_PO_CUST 物料凭证增强&#xff1a; BADI&#xff1a;MB_DOCUMENT_BADI USER-EXIT&#xff1a;MBCF0002 实现功能1、当参照预留过帐时&#xff0c;检查填入数量是否小于预留数量 2…...

当make执行遇到 Arguments too long

1. 问题 Ubuntu20.04上make编译生成so的时候报错&#xff1a; make[1]:execvp:/bin/sh:Arguments too long对应makefile中的报错位置&#xff0c;仅仅是生成so的时候报错&#xff0c;伪代码如下 ${build_tool} -shared -fpic -o "$" ${OBJ_FILE} ${LDFLAGS}然而如…...

《手把手教你》系列基础篇(七十三)-java+ selenium自动化测试-框架设计基础-TestNG实现启动不同浏览器(详解教程)

1.简介 上一篇文章中&#xff0c;从TestNg的特点我们知道支持变量&#xff0c;那么我们这一篇就通过变量参数来启动不同的浏览器进行自动化测试。那么如何实现同时启动不同的浏览器对脚本进行测试&#xff0c;且听我娓娓道来。 2.项目实战 2.1创建一个TestNg class 1.首先按…...

Maven基础

Maven简介 传统项目&#xff1a; jar包不统一 不兼容 项目中有部分jar包会升级 没升级的部分会起冲突 管理复杂 Maven本质是一个项目管理工具 pom POM Project Object Model 项目对象模型 把项目以对象形式进行管理 先写 pom.xml 的配置文件 代表一个项目 1个项目对应1个po…...

C++入门:初识类和对象

C入门&#xff1a;类和对象1 本节目录C入门&#xff1a;类和对象11.auto关键字&#xff08;C11)1.1类型别名思考1.2auto简介typeid运算符&#xff1a;获取类型信息1.3 auto的使用细则1.4auto不能推到的场景2.基于范围的for循环(C11)2.1范围for的语法2.2范围for的使用条件3.指针…...

BERT在CNN上也能用?看看这篇ICLR Spotlight论文丨已开源

如何在卷积神经网络上运行 BERT&#xff1f;你可以直接用 SparK —— 字节跳动技术团队提出的提出的稀疏层次化掩码建模 ( Designing BERT for Convolutional Networks: Sparse and Hierarchical Masked Modeling )&#xff0c;近期已被人工智能顶会 ICLR 2023 收录为 Spotligh…...

【MFC】模拟采集系统——界面设计(17)

功能介绍 启动界面 开始采集&#xff1a; PS&#xff1a;不涉及 数据保存&#xff0c;重现等功能 界面设计 界面分为三块&#xff1a;顶部黑条带关闭按钮、左边对话框&#xff0c;右边的主界面 资源&#xff1a; 顶部黑条 top.bmp 2* 29 &#xff08;宽 * 高 像素点&…...

锐捷(十五)mpls vxn跨域optionc场景

一 实验拓扑二 实验需求ce1和ce2为两个分公司&#xff0c;要求两个分公司之间用mpls vxn 进行通信&#xff0c;组网方式是optionc。三 实验分析optionc在转发平面上有点难理解&#xff0c;有一些关键点需要注意&#xff0c;大家点击链接可以参考我上篇发过的一个文章&#xff1…...

2023备战金三银四,Python自动化软件测试面试宝典合集(七)

马上就又到了程序员们躁动不安&#xff0c;蠢蠢欲动的季节~这不&#xff0c;金三银四已然到了家门口&#xff0c;元宵节一过后台就有不少人问我&#xff1a;现在外边大厂面试都问啥想去大厂又怕面试挂面试应该怎么准备测试开发前景如何面试&#xff0c;一个程序员成长之路永恒绕…...

redis 主从复制

在redis的持久化RDB与AOF详解文章中&#xff0c;我们知道如果redis宕机了&#xff0c;我们可以通过AOF 和 RDB 文件的方式恢复数据&#xff0c;从而保证数据的丢失&#xff08;或少量损失&#xff09;从而提高稳定性。但是&#xff0c;如果我们数据只存在一台redis服务器中&…...

如何用Redis实现延迟队列

背景前段时间有个小项目需要使用延迟任务&#xff0c;谈到延迟任务&#xff0c;我脑子第一时间一闪而过的就是使用消息队列来做&#xff0c;比如RabbitMQ的死信队列又或者RocketMQ的延迟队列&#xff0c;但是奈何这是一个小项目&#xff0c;并没有引入MQ&#xff0c;我也不太想…...

项目文件相关总结

风险登记册 风险登记册记录了已识别单个风险的详细信息。其主要内容包括: 已识别的风险清单潜在的风险责任人潜在的风险应对措施清单风险管理计划要求的其他信息供方选择标准 供方选择标准用于确保选出的建议书将提供最佳质量的所需服务,主要内容 包括: 能力和潜力产品成本…...

ZooKeeper集群搭建步骤

一、准备虚拟机准备三台虚拟机&#xff0c;对应ip地址和主机名如下&#xff1a;ip地址Hostname192.168.153.150ant163192.168.153.151ant164192.168.153.152ant165修改hostname&#xff0c;并使之生效[rootlocalhost /]# hostnamectl set-hostname zookeeper1 //修改hostname …...

wordpress后台更新后 前端没变化的解决方法

使用siteground主机的wordpress网站&#xff0c;会出现更新了网站内容和修改了php模板文件、js文件、css文件、图片文件后&#xff0c;网站没有变化的情况。 不熟悉siteground主机的新手&#xff0c;遇到这个问题&#xff0c;就很抓狂&#xff0c;明明是哪都没操作错误&#x…...

UE5 学习系列(二)用户操作界面及介绍

这篇博客是 UE5 学习系列博客的第二篇&#xff0c;在第一篇的基础上展开这篇内容。博客参考的 B 站视频资料和第一篇的链接如下&#xff1a; 【Note】&#xff1a;如果你已经完成安装等操作&#xff0c;可以只执行第一篇博客中 2. 新建一个空白游戏项目 章节操作&#xff0c;重…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql

智慧工地管理云平台系统&#xff0c;智慧工地全套源码&#xff0c;java版智慧工地源码&#xff0c;支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求&#xff0c;提供“平台网络终端”的整体解决方案&#xff0c;提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案

问题描述&#xff1a;iview使用table 中type: "index",分页之后 &#xff0c;索引还是从1开始&#xff0c;试过绑定后台返回数据的id, 这种方法可行&#xff0c;就是后台返回数据的每个页面id都不完全是按照从1开始的升序&#xff0c;因此百度了下&#xff0c;找到了…...

渲染学进阶内容——模型

最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

MVC 数据库

MVC 数据库 引言 在软件开发领域,Model-View-Controller(MVC)是一种流行的软件架构模式,它将应用程序分为三个核心组件:模型(Model)、视图(View)和控制器(Controller)。这种模式有助于提高代码的可维护性和可扩展性。本文将深入探讨MVC架构与数据库之间的关系,以…...

linux 错误码总结

1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

JDK 17 新特性

#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持&#xff0c;不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的&#xff…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作

一、上下文切换 即使单核CPU也可以进行多线程执行代码&#xff0c;CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短&#xff0c;所以CPU会不断地切换线程执行&#xff0c;从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...