当前位置: 首页 > 编程日记 > 正文

Java项目:在线商城系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取:博客首页 "资源" 里下载!

一、项目简述

本系统功能包括: 前台展示+后台管理,包括最基本的用户登录注册,下单, 购物车,购买,结算,订单查询,收货地址,后台商品管 理,订单管理,用户管理等等功能,小伙伴一起来看看 吧。

二、项目运行

环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX (Webstorm也 行)+ Eclispe (IntelliJ IDEA,Eclispe,MyEclispe,Sts都支 持)。

项目技术: Springboot + Maven + Mybatis + Vue + Redis + HTML 等 等组成,B/S模式+ Maven管理等等。

订单相关业务:

package com.qiu.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.qiu.entity.Logistics;
import com.qiu.entity.Order;
import com.qiu.entity.Product;
import com.qiu.service.LogisticsService;
import com.qiu.service.OrderService;
import com.qiu.service.ProductService;
import com.qiu.util.general.CommonResult;
import org.apache.commons.lang3.StringUtils;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;/*** @description 订单相关业务*/@RestController
@CrossOrigin
public class OrderController {final OrderService orderService;final ProductService productService;final LogisticsService logisticsService;final RedisTemplate<String,String> redisTemplate;public OrderController(RedisTemplate<String,String> redisTemplate,OrderService orderService,LogisticsService logisticsService,ProductService productService) {this.orderService = orderService;this.productService = productService;this.logisticsService = logisticsService;this.redisTemplate = redisTemplate;}@RequestMapping(value = "/order/findById")private CommonResult findOrderById(Integer orderId) {Order order= orderService.selectById(orderId);if(orderId!=null){return CommonResult.success("订单信息查询成功",order);}else{return CommonResult.error("订单信息查询失败");}}@RequestMapping(value = "/order/findOrderInfo")private CommonResult findOrderInfo(String userAccount) {List<Map<String, Object>> orderMap = orderService.selectAllOrder(userAccount);if(orderMap!=null){return CommonResult.success("订单信息查询成功",orderMap);}else{return CommonResult.error("订单信息查询失败");}}@RequestMapping(value = "/order/findAll")private CommonResult findAllOrder() {List<Order> orders = orderService.selectAll();System.out.println(orders);if(orders!=null){return CommonResult.success("订单信息查询成功",orders);}else{return CommonResult.error("订单信息查询失败");}}@RequestMapping(value = "/order/findCount")private CommonResult findCount() {Integer count = orderService.selectCount();if(count!=null){return CommonResult.success("订单数量查询成功",count);}else{return CommonResult.error("订单数量查询失败");}}@RequestMapping(value = "/order/add")private CommonResult addOrder(Order order) {if(order!=null){if(order.getProductNo().contains("Vip")){if(orderService.insertData(order)){return CommonResult.success("创建订单成功",order);}else{return CommonResult.error("创建订单失败");}}else{Product product = productService.selectByKey(order.getProductNo());Integer productStock = product.getProductStock();Integer payAmount = order.getPayAmount();boolean isOk =productStock >= payAmount;if(isOk){Product newProduct = new Product();newProduct.setProductId(product.getProductId());int newStock = productStock - payAmount;newProduct.setProductStock(newStock);newProduct.setIsStockOut(newStock<product.getLowestStock());// 如果库存小于等于0,自动下架newProduct.setIsSale(newStock>0);if(productService.updateById(newProduct)){if(orderService.insertData(order)){redisTemplate.opsForValue().set(order.getOrderNo(),order.getOrderNo(),24, TimeUnit.HOURS);return CommonResult.success("创建订单成功",order);}else{return CommonResult.error("创建订单失败");}}else{return CommonResult.error("创建订单失败");}}else{return CommonResult.error("商品库存不足");}}}else{return CommonResult.error("订单数据不完整");}}@RequestMapping(value = "/order/cartOrder")private CommonResult cartOrder(String orderNo,String ordersInfo) {JSONArray jsonArray = JSON.parseArray(ordersInfo);List<Order> orders = JSONObject.parseArray(jsonArray.toJSONString(), Order.class);if(orders!=null){ArrayList<String> orderInfo = new ArrayList<>();ArrayList<String> productInfo = new ArrayList<>();for (Order order : orders) {Product product = productService.selectByKey(order.getProductNo());Integer productStock = product.getProductStock();Integer payAmount = order.getPayAmount();boolean isOk =productStock >= payAmount;if(isOk){Product newProduct = new Product();newProduct.setProductId(product.getProductId());int newStock = productStock - payAmount;newProduct.setProductStock(newStock);newProduct.setIsStockOut(newStock<product.getLowestStock());// 如果库存小于等于0,自动下架newProduct.setIsSale(newStock>0);if(productService.updateById(newProduct)){if(orderService.insertData(order)){orderInfo.add(order.getOrderNo());productInfo.add(order.getProductNo());}}}}if(orderInfo.size()!=0){String orderNoInfo = StringUtils.join(orderInfo, ",");String productNoInfo = StringUtils.join(productInfo, ",");redisTemplate.opsForValue().set(orderNo,orderNoInfo,24, TimeUnit.HOURS);return CommonResult.success("创建订单成功",productNoInfo);}else{return CommonResult.success("创建订单失败");}}else{return CommonResult.error("订单数据不完整");}}@RequestMapping(value = "/order/update")private CommonResult updateOrder(Order order) {if(orderService.updateById(order)){return CommonResult.success("修改订单成功",order);}else{return CommonResult.error("修改订单失败");}}@RequestMapping(value = "/order/delete")private CommonResult deleteOrder(Integer orderId) {if(orderService.deleteById(orderId)){return CommonResult.success("删除订单成功","订单id:"+orderId);}else{return CommonResult.error("删除订单失败");}}@RequestMapping(value = "/order/receipt")private CommonResult updateOrder(Integer orderId) {Order order = new Order();order.setOrderId(orderId);order.setOrderState("已收货");if(orderService.updateById(order)){return CommonResult.success("商品收货成功",order);}else{return CommonResult.error("商品收货失败");}}@RequestMapping(value = "/orderDetail/orderInfo")private CommonResult orderInfo(String orderNo) {ArrayList<Object> resultList = new ArrayList<>();Order order = orderService.selectByKey(orderNo);Logistics logistics = logisticsService.selectOrderNo(orderNo);if(order!=null){resultList.add(order);}if(logistics!=null){resultList.add(logistics);}if(resultList.size()!=0){return CommonResult.success("订单详情查询成功",resultList);}else{return CommonResult.error("订单详情查询失败");}}
}

用户授权等相关业务:

package com.qiu.controller;import com.qiu.entity.Role;
import com.qiu.service.RoleService;
//import com.qiu.util.general.CommonResult;
import com.qiu.util.general.CommonResult;
//import com.power.common.model.*;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;/*** @description 用户授权等相关业务*/@RestController
@CrossOrigin
public class RoleController {final RoleService roleService;public RoleController(RoleService roleService) {this.roleService = roleService;}/*根据id查询用户*/@RequestMapping(value = "/role/findById")private CommonResult findById(Integer roleId) {Role role = roleService.selectById(roleId);if(role!=null){return CommonResult.success("查询成功",role);}else{return CommonResult.error("查询失败");}}/*根据角色名称查询角色*/@RequestMapping(value = "/role/findByKey")private CommonResult findByKey(String roleName) {Role role = roleService.selectByKey(roleName);if(role!=null){return  CommonResult.success("查询成功",role);}else{return CommonResult.error("查询失败");}}/*根据key查询用户*/@RequestMapping(value = "/role/existRoleName")private CommonResult existRoleName(Integer roleId,String roleName) {Boolean isExist = roleService.existsRoleName(roleId,roleName);if(isExist!=null){return  CommonResult.success("查询成功",isExist);}else{return CommonResult.error("查询失败");}}/*查询所有角色信息*/@RequestMapping(value = "/role/findAll")private CommonResult findAll() {List<Role> roles = roleService.selectAll();if(roles!=null){return CommonResult.success("查询成功",roles);}else{return CommonResult.error("查询失败");}}/*查询所有用户*/@RequestMapping(value = "/role/findAllUsable")private CommonResult findAllUsable() {List<Role> roles = roleService.selectAllUsable();if(roles!=null){return CommonResult.success("查询成功",roles);}else{return CommonResult.error("查询失败");}}@RequestMapping(value = "/role/count")private CommonResult findCount() {Integer count = roleService.selectCount();if(count!=null){return CommonResult.success("查询成功",count);}else{return CommonResult.error("查询失败");}}@RequestMapping(value = "/role/findIdByKey")private CommonResult findIdByKey(String key) {Integer id = roleService.selectIdByKey(key);if(id!=null){return CommonResult.success("查询成功","id: "+id);}else{return CommonResult.error("查询失败");}}@RequestMapping(value = "/role/add")private CommonResult add(Role role) {if(role!=null){if(roleService.insertData(role)){return CommonResult.success("添加成功",role);}else{return CommonResult.error("添加失败");}}return CommonResult.error("用户数据不存在");}@RequestMapping(value = "/role/update")private CommonResult update(Role role) {System.out.println(role);if(roleService.updateById(role)){return CommonResult.success("更新成功",role);}else{return CommonResult.error("更新失败");}}@RequestMapping(value = "/role/delete")private CommonResult delete(Integer roleId) {if(roleService.deleteById(roleId)){return CommonResult.success("删除成功",roleId);}else{return CommonResult.error("删除失败");}}
}

用户相关业务:

package com.qiu.controller;
import com.qiu.entity.User;
import com.qiu.entity.UserRole;
import com.qiu.entity.Vip;
import com.qiu.service.RoleService;
import com.qiu.service.UserRoleService;
import com.qiu.service.UserService;
import com.qiu.service.VipService;
import com.qiu.util.general.CommonResult;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;/*** @description 用户相关业务*/@RestController
@CrossOrigin
public class UserController {final RoleService roleService;final UserService userService;final UserRoleService userRoleService;final VipService vipService;public UserController(UserService userService, RoleService roleService,VipService vipService, UserRoleService userRoleService) {this.userService = userService;this.roleService = roleService;this.userRoleService = userRoleService;this.vipService = vipService;}/*根据id查询用户*/@RequestMapping(value = "/user/findById")private CommonResult findById(Integer id) {User user = userService.selectById(id);if(user!=null){return CommonResult.success("查询成功",user);}else{return CommonResult.error("查询失败");}}/*根据帐号查询用户*/@RequestMapping(value = "/user/findByKey")private CommonResult findByKey(String key) {User user = userService.selectByKey(key);if(user!=null){return CommonResult.success("查询成功",user);}else{return CommonResult.error("查询失败");}}/*查询所有用户*/@RequestMapping(value = "/user/findAll")private CommonResult findAll() {List<User> users = userService.selectAll();if(users!=null){return CommonResult.success("查询成功",users);}else{return CommonResult.error("查询失败");}}/*判断某个用户是否还存在*/@RequestMapping(value = "/user/existKey")private CommonResult existKey(String key) {Boolean isExist = userService.existsWithPrimaryKey(key);if(isExist!=null){return CommonResult.success("查询成功",isExist);}else{return CommonResult.error("查询失败");}}/*查询用户状态*/@RequestMapping(value = "/user/userState")private CommonResult userState(String accountNumber) {Boolean state = userService.selectUserState(accountNumber);if(state!=null){return CommonResult.success("查询成功",state);}else{return CommonResult.error("查询失败");}}/*查询用户记录的总条数*/@RequestMapping(value = "/user/count")private CommonResult findCount() {Integer count = userService.selectCount();if(count!=null){if(count!=0){return CommonResult.success("查询成功",count);}else{return CommonResult.error("查询失败");}}else{return CommonResult.error("查询失败");}}//通过用户帐号去查询用户的id@RequestMapping(value = "/user/findIdByKey")private CommonResult findIdByKey(String key) {Integer id = userService.selectIdByKey(key);if(id!=null){if(id!=0){return CommonResult.success("查询成功","id: "+id);}else{return CommonResult.error("未查询到");}}else{return CommonResult.error("查询失败");}}//删除用户@RequestMapping(value = "/user/delete")private CommonResult delete(Integer userId) {if(userService.deleteById(userId)){return CommonResult.success("删除成功",userId);}else{return CommonResult.error("删除失败");}}@RequestMapping(value = "/user/author")private CommonResult author(Integer userId,@RequestParam List<Integer> roleId) {System.out.println(userId);System.out.println(roleId);if(userId!=null && roleId!=null && roleId.size()!=0){if(userRoleService.deleteById(userId)){UserRole userRole = new UserRole();userRole.setUserId(userId);for (Integer id : roleId) {userRole.setRoleId(id);userRoleService.insertData(userRole);}}return CommonResult.success("授权成功");}else{return CommonResult.error("角色授权数据不完整!");}}/*查询所有VIP用户*/@RequestMapping(value = "/vip/findAllVip")private CommonResult findAllVip() {List<Vip> vips = vipService.selectAll();if(vips!=null){return CommonResult.success("查询成功",vips);}else{return CommonResult.error("查询失败");}}/*查询VIP用户信息根据id*/@RequestMapping(value = "/vip/findVipById")private CommonResult findVipById(Integer vipId) {Vip vip = vipService.selectById(vipId);if(vip!=null){return CommonResult.success("查询成功",vip);}else{return CommonResult.error("查询失败");}}/*查询VIP用户信息根据id*/@RequestMapping(value = "/vip/findVipByKey")private CommonResult findVipByKey(String accountNumber) {Vip vip = vipService.selectByKey(accountNumber);if(vip!=null){return CommonResult.success("查询成功",vip);}else{return CommonResult.error("查询失败");}}/*判断用户信息是否存在*/@RequestMapping(value = "/vip/existsVip")private CommonResult existsVip(String accountNumber) {Boolean isExist = vipService.existsVip(accountNumber);if(isExist!=null){return CommonResult.success("查询成功",isExist);}else{return CommonResult.error("查询失败");}}//创建vip信息@RequestMapping(value = "/vip/addVip")private CommonResult addVip(Vip vip) {Date date = new Date();Calendar cal = Calendar.getInstance();cal.setTime(date);//设置起时间cal.add(Calendar.YEAR, 1);//增加一年vip.setOverdueTime(cal.getTime());if(vipService.insertData(vip)){return CommonResult.success("vip信息插入成功",vip);}else{return CommonResult.error("vip信息插入失败");}}//更新vip信息@RequestMapping(value = "/vip/updateVip")private CommonResult updateVip(Vip vip) {if(vipService.updateById(vip)){return CommonResult.success("vip信息更新成功",vip);}else{return CommonResult.error("vip信息更新失败");}}//删除vip信息@RequestMapping(value = "/vip/deleteVip")private CommonResult deleteVip(Integer vipId) {if(vipService.deleteById(vipId)){return CommonResult.success("删除成功",vipId);}else{return CommonResult.error("删除失败");}}
}

源码获取:博客首页 "资源" 里下载!

相关文章:

自定义参数解析器,减少10%的代码

*** 赋值调用方法* 如果为空,默认调用name()方法* 该方法必须是一个不含参数的方法,否则将会调用失败* @return*/value() : value用于绑定请求参数和方法参数名一致时的对应关系。比如user?statusNo=1。方法的参数写法如下:getUser(@EnumParam(value=“statusNo”) int status) 或者 getUser(@EnumParam() int statusNo)valueMethod() : 赋值时调用枚举中的方法。

微服务全做错了!谷歌提出新方法,成本直接降9倍!

一位DataDog的客户收到6500万美元的云监控账单的消息,也再次让业界无数人惊到了。事实上有些团队在将集中式单体应用拆分为微服务时,首先进行的往往不是建立领域模型,而只是按照业务功能将原来单体应用的一个软件包拆分成多个所谓的“微服务”软件包,而这些“微服务”内的代码高度耦合,逻辑边界不清晰,长期以来,不管大厂还是小厂,微服务都被认为是云原生服务应用程序架构的事实标准,然而2023,不止那位37signals的DHH决心下云,放弃微服务,就连亚马逊和谷歌等这些云巨头,正在带头开始革了微服务的命。

简述nodejs、npm及其模块在windows下的安装与配置

nodejs的安装 登陆官网http://nodejs.org/&#xff0c;自行安装&#xff0c;不需配置环境变量&#xff0c;安装中自动配置了。 检测是否安装成功&#xff0c;使用cmd输入 node -v 即可查看。 npm的安装 如果是最新版nodejs其实不用装npm&#xff0c;它集成了npm&#xff0c;验证…

discuz,ecshop的伪静态规则(apache+nginx)

discuz(nginx): (备注&#xff1a;该规则也适用于二级目录) rewrite ^([^\.]*)/topic-(.)\.html$ $1/portal.php?modtopic&topic$2 last; rewrite ^([^\.]*)/article-([0-9])-([0-9])\.html$ $1/portal.php?modview&aid$2&page$3 last; rewrite ^([^\.]*)/forum-…

字符串匹配数据结构 --Trie树 高效实现搜索词提示 / IDE自动补全

文章目录1. 算法背景2. Trie 树实现原理2.1 Trie 树的构建2.2 Trie树的查找2.3 Trie树的遍历2.4 Trie树的时间/空间复杂度2.5 Trie 树 Vs 散列表/红黑树3. Trie树的应用 -- 搜索词提示功能1. 算法背景 之前我们了解过单模式串匹配的相关高效算法 – BM/KMP&#xff0c;虽难以理…

Java项目:成绩管理系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 超豪华成绩管理系统&#xff0c;学生&#xff0c;教师&#xff0c;管理员三类用户集 成&#xff0c;课程表管理&#xff0c;成绩查询&#xff0c;成绩详情数据统计…

NSThread 多线程相关

1.下面的代码&#xff0c;有2点需要注意&#xff0c;1>就是 就是thread:所传得参数&#xff0c;这里传得的是nsarray 当然也可以传其他的类型。2> [self performSelectorOnMainThread:selector(update) withObject:nil waitUntilDone:YES]; 这个函数的作用是通知主线程进…

Windows Phone 8初学者开发—第19部分:设置RecordAudio.xaml页面

原文地址: http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners/Part-19-Setting-up-the-RecordAudioxaml-Page 系列地址: http://channel9.msdn.com/Series/Windows-Phone-8-Development-for-Absolute-Beginners 源代码: http://aka.ms/abs…

9.path Sum III(路径和 III)

Level&#xff1a; Easy 题目描述&#xff1a; You are given a binary tree in which each node contains an integer value. Find the number of paths that sum to a given value. The path does not need to start or end at the root or a leaf, but it must go downwards…

字符串匹配算法 -- AC自动机 基于Trie树的高效的敏感词过滤算法

文章目录1. 算法背景2. AC自动机实现原理2.1 构建失败指针2.2 依赖失败指针过滤敏感词3. 复杂度及完整代码1. 算法背景 之前介绍过单模式串匹配的高效算法:BM和KMP 以及 基于多模式串的匹配数据结构Trie树。 1. BM和KMP 单模式串匹配算法细节 2. Trie树 多模式串的高效匹配数…

Java项目:仿小米商城系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 基于vue Springboot前后端分离项目精简版仿小米商城 系统&#xff0c;注册登录&#xff0c;首页展示&#xff0c;商品展示&#xff0c;商品购买&#xff0c;下单…

vb socket的使用

说明:原本在 csdn 博客 写博客的&#xff0c;因为使用的移动宽带&#xff0c;csdn的 博客无法访问&#xff0c;所以先暂时到博客园写博客了 有能解决移动宽带 有部分网站不能访问的问题&#xff0c;请联系我&#xff0c;QQ 809775607 /***************************/ 下面写wins…

不吹牛会死!国内音乐平台进入“大逃杀”

日前&#xff0c;一篇《看看海洋与腾讯音乐将如何“血洗”独立音乐应用》的文章引起了广泛关注。文中海洋声称长期独家签约的音乐及版权代理公司达40多家&#xff0c;占市场份额超过15%&#xff0c;一时间名不见经传的海洋音乐仿佛成了一匹跃然网上的“黑马”。然而据音乐圈深喉…

leetcode网学习笔记(1)

https://leetcode-cn.com/problems/reverse-linked-list/submissions/ 206 反转链表 错误原因&#xff1a;没有考虑到链表为空以及链表只有一个元素的情况 https://leetcode-cn.com/problems/swap-nodes-in-pairs/comments/ 24 两两交换链表 原方法&#xff1a;使用4个指针遍历…

贪心算法简单实践 -- 分糖果、钱币找零、最多区间覆盖、哈夫曼编解码

1. 贪心算法概览 贪心算法是一种算法思想。希望能够满足限制的情况下将期望值最大化。比如&#xff1a;Huffman编码&#xff0c;Dijkstra单源最短路径问题&#xff0c;Kruskal最小生成树 等问题都希望满足限制的情况下用最少的代价找到解决问题的办法。 这个办法就是贪心算法…

Java项目:个人博客系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a;文章展示、热门文章、文章分类、标签云用户登录评论、匿名评论用户留言、匿名留言评论管理、文章发布、文章管理文章数据统计等等&#xff0e; 二、项目运行 环境…

第十九章——使用资源调控器管理资源(2)——使用T-SQL配置资源调控器

第十九章——使用资源调控器管理资源&#xff08;2&#xff09;——使用T-SQL配置资源调控器 原文:第十九章——使用资源调控器管理资源&#xff08;2&#xff09;——使用T-SQL配置资源调控器 前言&#xff1a;在前一章已经演示了如何使用SSMS来配置资源调控器。但是作为DBA&a…

Android_开源框架_Volley实例

2019独角兽企业重金招聘Python工程师标准>>> 1.自定义相关类在 Android_开源框架_Volley(Google IO 2013)源代码及内部实现过程分析一文中&#xff0c;简单概述了Volley框架内部实现过程。如想理解彻底应该熟悉 android多线程通信机制( Android_Thread多线程_Handle…

maven的配置-2019-4-13

一.Maven的优点 1. 依赖管理 jar 包管理 2.一键构建 &#xff08;编译-----测试------打包-----安装-----部署 &#xff09; 什么是项目构建&#xff1f; 指的是项目从编译-----测试------打包-----安装-----部署 整个过程都交给maven进行管理&#xff0c;这个过程称为构建 一…

WiredTiger引擎编译 及 LT_PREREQ(2.2.6)问题解决

近期需要为异构引擎做准备&#xff0c; wiredtiger 以其优异的性能(B-tree和LSM-tree都支持)和稳定性(Mongodb的默认存储引擎) 被我们备选为异构引擎里的一个子引擎&#xff0c;后续将深入wiredtiger 引擎原理。这里简单记录一下Wiredtiger 存储引擎的编译记录。 Environment …

Java项目:员工管理系统(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a;分为前端翻后端部分&#xff0c;包括用户&#xff0c;区分晋通用户以及誉里员用户&#xff0c;包括首页展示&#xff0c;部门管理&#xff0c;人事管理&#xff0c…

缺陷重点内容分析

1.缺陷优先级 序号优先级描述1低暂时不影响继续测试&#xff0c;可以在方便时解决2中部分功能测试无法继续测试&#xff1b;需要优先解决3高测试暂停&#xff0c;无法进行&#xff0c;必须立即解决2.缺陷的状态&#xff08;图片来自云测视频&#xff09; 3.缺陷生命周期与管理流…

关于node.js的误会

昨天写了篇博客&#xff0c;介绍了一下我对node.js的第一次亲密接触后的感受&#xff0c;以为node.js很小众&#xff0c;出乎我意料很多人感兴趣&#xff0c;并且对博客中的细节问题做了评论&#xff0c;最多的是围绕node.js的异步与单线程展开的&#xff0c;当然还有很多关于n…

文本相关CSS

文本相关CSS 属性 word-breakoverflow-wrap(word-wrap)white-spacetext-overflowtext-wrap(目前主流浏览器都不支持)应用 一般断行需求实现文本不换行&#xff0c;以省略号表示超出的部分参考资料属性 word-break 作用&#xff1a;指定非CJK(中日韩)文本的断行规则。&#xff0…

Rocksdb 的优秀代码(三)-- 工业级 线程池实现分享

文章目录前言1. Rocksdb线程池概览2. Rocksdb 线程池实现2.1 基本数据结构2.2 线程池创建2.3 线程池 调度线程执行2.4 线程池销毁线程2.5 线程池优先级调度2.6 动态调整线程池 线程数目上限3. 总结前言 Rocksdb 作为一个第三方库的形态嵌入到各个存储系统之中存储元数据&#…

Java项目:网上电商项目(前后端分离+java+vue+Springboot+ssm+mysql+maven+redis)

源码获取&#xff1a;博客首页 "资源" 里下载&#xff01; 一、项目简述 本系统功能包括&#xff1a; 一款基于SpringbootVue的电商项目&#xff0c;前后端分离项目&#xff0c;前台后台都有&#xff0c;前台商品展示购买&#xff0c;购物车分类&#xff0c;订 单查…

3月7日 ArrayList集合

ArrayList与数组的区别&#xff1a; 数组是连续的、同一类型数据的一块区域&#xff0c;而集合可以是不连续的、多种数据类型的。 1.ArrayList ArrayList al new ArrayList(); al.Add(3); al.Add(5.09); al.Add("gfdg"); al.Inse…

什么时候出生好?

从年龄来说&#xff0c;女人头一胎的怀孕时间最好在35岁以前&#xff0c;因为过了35岁后不孕和头胎生育缺陷的比例会大幅度升高。那么&#xff0c;从孩子的角度&#xff0c;什么时候出生好&#xff1f;很多人不考虑这个问题&#xff0c;能不能怀上还难说那。迷信的人则追求出生…

数据库搜索与索引

索引是对数据库表中一列或多列的值进行排序的一种结构&#xff0c;使用索引可快速访问数据库表中的特定信息。如果想按特定职员的姓来查找他或她&#xff0c;则与在表中搜索所有的行相比&#xff0c;索引有助于更快地获取信息。 索引的一个主要目的就是加快检索表中数据&#x…

Clion 远程开发 配置

文章目录1. 增加远端服务工具2. 配置远端服务器3. 配置编译选项4. 设置远端开发路径Clion作为C/C语言友好的IDE&#xff0c;除了高效的代码索引 以及 基本的本地开发 能力之外还需要有远程开发能力&#xff0c;即我们工作中的代码处于远端linux服务器之上&#xff0c;通过在本地…