SSM框架+LayUi+Mysql实现的物流配送管理系统(功能包含分角色,登录/注册、车辆管理/路线管理/运单管理/调度安排/信息管理等)

news2025/7/12 17:01:44

博客目录

  • SSM框架+LayUi+Mysql实现的物流配送管理系统
    • 实现功能截图
    • 系统功能
    • 使用技术
    • 代码
    • 完整源码

SSM框架+LayUi+Mysql实现的物流配送管理系统

本系统为了解决物流平台的配送难题,将司机/物流配送的整体流程话,便于物流公司的统一管理,提高了物流日常工作的高效。
(文末查看完整源码)

实现功能截图

车辆管理
在这里插入图片描述
路线管理
在这里插入图片描述
运单管理
在这里插入图片描述
调度安排
在这里插入图片描述
皮肤设置
在这里插入图片描述

系统功能

本系统实现了以下功能:
1、注册登录
2、权限分配
3、员工管理
4、车辆管理
5、路线管理
6、运单管理
7、调度安排
8、其他信息管理

使用技术

数据库:mysql
开发工具:Idea(Myeclispe、Eclipse也可以)
知识点:SSM框架

项目结构
在这里插入图片描述

代码

java端
entity实体
Admin.java

package com.wbg.logistics.entity;

public class Admin {
    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column admin.a_id
     *
     * @mbg.generated
     */
    private Integer aId;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column admin.a_account
     *
     * @mbg.generated
     */
    private String aAccount;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column admin.a_password
     *
     * @mbg.generated
     */
    private String aPassword;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column admin.a_rank
     *
     * @mbg.generated
     */
    private String aRank;

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column admin.a_id
     *
     * @return the value of admin.a_id
     *
     * @mbg.generated
     */
    public Integer getaId() {
        return aId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column admin.a_id
     *
     * @param aId the value for admin.a_id
     *
     * @mbg.generated
     */
    public void setaId(Integer aId) {
        this.aId = aId;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column admin.a_account
     *
     * @return the value of admin.a_account
     *
     * @mbg.generated
     */
    public String getaAccount() {
        return aAccount;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column admin.a_account
     *
     * @param aAccount the value for admin.a_account
     *
     * @mbg.generated
     */
    public void setaAccount(String aAccount) {
        this.aAccount = aAccount == null ? null : aAccount.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column admin.a_password
     *
     * @return the value of admin.a_password
     *
     * @mbg.generated
     */
    public String getaPassword() {
        return aPassword;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column admin.a_password
     *
     * @param aPassword the value for admin.a_password
     *
     * @mbg.generated
     */
    public void setaPassword(String aPassword) {
        this.aPassword = aPassword == null ? null : aPassword.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column admin.a_rank
     *
     * @return the value of admin.a_rank
     *
     * @mbg.generated
     */
    public String getaRank() {
        return aRank;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column admin.a_rank
     *
     * @param aRank the value for admin.a_rank
     *
     * @mbg.generated
     */
    public void setaRank(String aRank) {
        this.aRank = aRank == null ? null : aRank.trim();
    }
}

Depart.java

package com.wbg.logistics.entity;

import org.springframework.format.annotation.DateTimeFormat;

import java.util.Date;

public class Depart {
    private Firm firm;

    private Dispatch dispatch;

    @Override
    public String toString() {
        return "Depart{" +
                "firm=" + firm +
                ", dispatch=" + dispatch +
                ", staffNo=" + staffNo +
                ", staffName='" + staffName + '\'' +
                ", gender='" + gender + '\'' +
                ", birthhday=" + birthhday +
                ", phone='" + phone + '\'' +
                ", password='" + password + '\'' +
                ", dedpartNo=" + dedpartNo +
                ", firmNo=" + firmNo +
                '}';
    }

    public Firm getFirm() {
        return firm;
    }

    public void setFirm(Firm firm) {
        this.firm = firm;
    }

    public Dispatch getDispatch() {
        return dispatch;
    }

    public void setDispatch(Dispatch dispatch) {
        this.dispatch = dispatch;
    }

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.staff_no
     *
     * @mbg.generated
     */
    private Integer staffNo;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.staff_name
     *
     * @mbg.generated
     */
    private String staffName;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.gender
     *
     * @mbg.generated
     */
    private String gender;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.birthhday
     *
     * @mbg.generated
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private Date birthhday;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.phone
     *
     * @mbg.generated
     */
    private String phone;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.password
     *
     * @mbg.generated
     */
    private String password;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.dedpart_no
     *
     * @mbg.generated
     */
    private Integer dedpartNo;

    /**
     *
     * This field was generated by MyBatis Generator.
     * This field corresponds to the database column depart.firm_no
     *
     * @mbg.generated
     */
    private Integer firmNo;

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.staff_no
     *
     * @return the value of depart.staff_no
     *
     * @mbg.generated
     */
    public Integer getStaffNo() {
        return staffNo;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.staff_no
     *
     * @param staffNo the value for depart.staff_no
     *
     * @mbg.generated
     */
    public void setStaffNo(Integer staffNo) {
        this.staffNo = staffNo;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.staff_name
     *
     * @return the value of depart.staff_name
     *
     * @mbg.generated
     */
    public String getStaffName() {
        return staffName;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.staff_name
     *
     * @param staffName the value for depart.staff_name
     *
     * @mbg.generated
     */
    public void setStaffName(String staffName) {
        this.staffName = staffName == null ? null : staffName.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.gender
     *
     * @return the value of depart.gender
     *
     * @mbg.generated
     */
    public String getGender() {
        return gender;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.gender
     *
     * @param gender the value for depart.gender
     *
     * @mbg.generated
     */
    public void setGender(String gender) {
        this.gender = gender == null ? null : gender.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.birthhday
     *
     * @return the value of depart.birthhday
     *
     * @mbg.generated
     */
    public Date getBirthhday() {
        return birthhday;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.birthhday
     *
     * @param birthhday the value for depart.birthhday
     *
     * @mbg.generated
     */
    public void setBirthhday(Date birthhday) {
        this.birthhday = birthhday;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.phone
     *
     * @return the value of depart.phone
     *
     * @mbg.generated
     */
    public String getPhone() {
        return phone;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.phone
     *
     * @param phone the value for depart.phone
     *
     * @mbg.generated
     */
    public void setPhone(String phone) {
        this.phone = phone == null ? null : phone.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.password
     *
     * @return the value of depart.password
     *
     * @mbg.generated
     */
    public String getPassword() {
        return password;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.password
     *
     * @param password the value for depart.password
     *
     * @mbg.generated
     */
    public void setPassword(String password) {
        this.password = password == null ? null : password.trim();
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.dedpart_no
     *
     * @return the value of depart.dedpart_no
     *
     * @mbg.generated
     */
    public Integer getDedpartNo() {
        return dedpartNo;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.dedpart_no
     *
     * @param dedpartNo the value for depart.dedpart_no
     *
     * @mbg.generated
     */
    public void setDedpartNo(Integer dedpartNo) {
        this.dedpartNo = dedpartNo;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method returns the value of the database column depart.firm_no
     *
     * @return the value of depart.firm_no
     *
     * @mbg.generated
     */
    public Integer getFirmNo() {
        return firmNo;
    }

    /**
     * This method was generated by MyBatis Generator.
     * This method sets the value of the database column depart.firm_no
     *
     * @param firmNo the value for depart.firm_no
     *
     * @mbg.generated
     */
    public void setFirmNo(Integer firmNo) {
        this.firmNo = firmNo;
    }
}

dao层
AdminMapper.java

package com.wbg.logistics.dao;

import com.wbg.logistics.entity.Admin;
import java.util.List;

public interface AdminMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table admin
     *
     * @mbg.generated
     */
    int deleteByPrimaryKey(Integer aId);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table admin
     *
     * @mbg.generated
     */
    int insert(Admin record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table admin
     *
     * @mbg.generated
     */
    Admin selectByPrimaryKey(Integer aId);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table admin
     *
     * @mbg.generated
     */
    List<Admin> selectAll();

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table admin
     *
     * @mbg.generated
     */
    int updateByPrimaryKey(Admin record);
}

DepartMapper.java

package com.wbg.logistics.dao;

import com.wbg.logistics.entity.Depart;
import com.wbg.logistics.entity.Dispatch;

import java.util.List;

public interface DepartMapper {
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table depart
     *
     * @mbg.generated
     */
    int deleteByPrimaryKey(Integer staffNo);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table depart
     *
     * @mbg.generated
     */
    int insert(Depart record);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table depart
     *
     * @mbg.generated
     */
    List<Depart> selectByPrimaryKey(Integer staffNo);

    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table depart
     *
     * @mbg.generated
     */
    List<Depart> selectAll();
    List<Depart> selectAllJson();
    List<Depart> selectByType(String staffName);
    /**
     * This method was generated by MyBatis Generator.
     * This method corresponds to the database table depart
     *
     * @mbg.generated
     */
    int updateByPrimaryKey(Depart record);
}

controller层
AdminMapperController.java

package com.wbg.logistics.controller;

import com.wbg.logistics.dao.AdminMapper;
import com.wbg.logistics.entity.Admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;

@Controller
@RequestMapping("/admin")
public class AdminMapperController {
    @Autowired
    private AdminMapper adminMapper;

    @RequestMapping(method = RequestMethod.GET)
    public String index(@RequestParam(defaultValue = "1") int page, Model model){
        List<Admin> authodList=adminMapper.selectAll();
        model.addAttribute("authod",authodList);
        return "/employee";
    }
}

DepartController.java

package com.wbg.logistics.controller;

import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.wbg.logistics.dao.DepartMapper;
import com.wbg.logistics.entity.Depart;
import com.wbg.logistics.util.DBUtil;
import com.wbg.logistics.util.R;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.servlet.mvc.support.RedirectAttributes;

import javax.ws.rs.PathParam;
import java.util.Date;
import java.util.List;

@Controller
@RequestMapping("/depart")
public class DepartController {

    @Autowired
    private DepartMapper departMapper;
    @RequestMapping(value = "/json",method = RequestMethod.GET)
    @ResponseBody
    public String selectAllJson(@RequestParam("page") int page ,@RequestParam("limit") int limit){
        PageHelper.startPage(page,limit);
        R r=new R();
        List<Depart> list=departMapper.selectAllJson();
        PageInfo pi = new PageInfo(list);
        r.setMsg("ok");
        r.setData(list);
        r.setCount((int)pi.getTotal());
        return r.toJsonyMd();
    }
    @RequestMapping(value = "/add", method = RequestMethod.GET)
    public String add(Depart depart, RedirectAttributes redirectAttributes) {
        try {
            if (departMapper.insert(depart) > 0) {
                redirectAttributes.addAttribute("msg", "添加成功");
                redirectAttributes.addAttribute("routeName","");
                redirectAttributes.addAttribute("staff", "");
            }
            else{
                redirectAttributes.addAttribute("msg","添加失败");

            }
        }catch (Exception e){
            redirectAttributes.addAttribute("msg","添加失败");

            return "redirect:/depart";
        }
        return "redirect:/depart";
    }

    @RequestMapping(value = "/update", method = RequestMethod.POST)
    @ResponseBody
    public String update(@RequestBody Depart depart) {
        R r = new R();
        try{
            if (departMapper.updateByPrimaryKey(depart) > 0) {
                r.setMsg("修改成功");
                r.setCode(3);
            } else
                r.setMsg("修改失败");
        }catch (Exception e){
            r.setMsg("修改失败");
            return r.toJsonyMd();
        }


        return r.toJsonyMd();
    }

    @RequestMapping(value = "/del/{departNo}", method = RequestMethod.POST)
    @ResponseBody
    public String del(@PathVariable("departNo") int departNo) {
        R r = new R();
        try {
            if (departMapper.deleteByPrimaryKey(departNo) > 0) {
                r.setMsg("删除成功");
                r.setCode(3);
            } else
                r.setMsg("删除失败");
        }catch (Exception e){
            r.setMsg("删除失败,可能存在员工");
            return r.toJsonyMd();
        }
        return r.toJsonyMd();
    }
    @RequestMapping(method = RequestMethod.GET)
    public String index(){
        return "employeeadd";
    }

    @RequestMapping(value = "/ById/{staffNo}", method = RequestMethod.GET)
    @ResponseBody
    public String seleById(@PathVariable("staffNo") int staffNo){
        R r=new R();
        List<Depart> list=departMapper.selectByPrimaryKey(staffNo);
        r.setMsg("ok");
        r.setData(list);
        r.setCount(1);
        return r.toJson();
    }
    @RequestMapping(value = "/ByName/{staffName}", method = RequestMethod.GET)
    @ResponseBody
    public String seleByName(@PathVariable("staffName") String staffName){
        R r=new R();
        List<Depart> list=departMapper.selectByType("%"+staffName+"%");
        PageInfo pi = new PageInfo(list);
        r.setMsg("ok");
        r.setData(list);
        r.setCount((int)pi.getTotal());
        return r.toJson();
    }

}

DBUtil.java

package com.wbg.logistics.util;

import com.fasterxml.jackson.core.JsonParseException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.sun.jmx.snmp.Timestamp;

import java.io.IOException;
import java.text.ParsePosition;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class DBUtil {
    public static String toJson(Object obj){
        String reuqest=null;
        //对象映射
        ObjectMapper mapper=new ObjectMapper();
        //设置时间格式
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        mapper.setDateFormat(dateFormat);
        try {
            reuqest=mapper.writeValueAsString(obj);
        } catch (JsonProcessingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return reuqest;
    }
    public static String toJsonyMd(Object obj){
        String reuqest=null;
        //对象映射
        ObjectMapper mapper=new ObjectMapper();
        //设置时间格式
        SimpleDateFormat dateFormat=new SimpleDateFormat("yyyy-MM-dd");
        mapper.setDateFormat(dateFormat);
        try {
            reuqest=mapper.writeValueAsString(obj);
        } catch (JsonProcessingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return reuqest;
    }
    public static <T> T toObject(String src,Class<T> valueType){
        T request=null;
        //对象反射
        ObjectMapper mapper=new ObjectMapper();
        try {
            request=mapper.readValue(src, valueType);
        } catch (JsonParseException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (JsonMappingException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return request;
    }
    public static Timestamp date(String date_str) {
        try {
            Calendar zcal = Calendar.getInstance();//日期类
            Timestamp timestampnow = new Timestamp(zcal.getTimeInMillis());//转换成正常的日期格式
            SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");//改为需要的东西
            ParsePosition pos = new ParsePosition(0);
            java.util.Date current = formatter.parse(date_str, pos);
            timestampnow = new Timestamp(current.getTime());
            return timestampnow;
        }
        catch (NullPointerException e) {
            return null;
        }
    }
}

完整源码

觉得有用,记得一键三连哦!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/17959.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

JUC学习笔记——共享模型之内存

在本系列内容中我们会对JUC做一个系统的学习&#xff0c;本片将会介绍JUC的内存部分 我们会分为以下几部分进行介绍&#xff1a; Java内存模型可见性模式之两阶段终止模式之Balking原理之指令级并行有序性volatile原理 Java内存模型 我们首先来介绍一下Java内存模型&#xf…

博途1200PLC编码器速度信号采集和滤波处理

速度估算有M法和T法测速2种常用方法,工业控制PLC上基本采用M法测速,M法测速的详细原理,这里不再赘述。感兴趣的可以参看下面的文章链接: PLC通过编码器反馈值计算速度的推荐做法(算法解析+ST代码)_RXXW_Dor的博客-CSDN博客PLC如何测量采集编码器的位置数据,不清楚的可以…

spring框架源码十七、Bean对象创建子流程

Bean对象创建子流程Bean对象创建子流程new ClassPathXmlApplicationContextClassPathXmlApplicationContext#ClassPathXmlApplicationContext(java.lang.String)ClassPathXmlApplicationContext#ClassPathXmlApplicationContext(java.lang.String[], boolean, org.springframew…

冒泡事件在Vue中的应用

什么是事件冒泡&#xff1f; 一想到“冒泡”这两个词会想到什么&#xff1f;想必然&#xff0c;那就是气泡自下而上的从水底往上生的场景&#xff0c;但是我们也知道&#xff0c;水在往上升的过程中&#xff0c;也会经历不同的高度。由此场景&#xff0c;那么想必然&#xff0c…

JavaEE 进阶:Spring 核⼼与设计思想

文章目录一、Spring 是什么1、什么是容器2、什么是 IoC① 传统程序开发Ⅰ 轮胎尺寸固定a. 代码b. 缺陷Ⅱ 轮胎尺寸改变a. 代码b. 缺陷② 控制反转式程序开发Ⅰ 控制反转Ⅱ 需求增加Ⅲ 优点③ 对⽐总结规律3、理解 Spring IoC4、DI 概念说明一、Spring 是什么 Spring是当前Java…

Windows安装nginx

Windows安装nginx1.下载Nginx2.Nginx的使用2.1 修改nginx.conf2.2 启动nginx3.可能出现的问题观前提示&#xff1a; 本文所使用的系统Windows10。 1.下载Nginx Nginx官网&#xff0c;点击download下载 根据需求下载自己所需版本&#xff0c;这里我下载的是稳定版本 2.Nginx的…

链表

章节目录&#xff1a;一、链表1.1 概述二、单向链表2.1 实现思路2.2 代码示例三、双向链表3.1 实现思路3.2 代码示例四、单向环形链表4.1 约瑟夫问题4.2 实现思路4.3 代码示例五、结束语一、链表 1.1 概述 链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元…

谷粒学院(一) 项目环境搭建

一、数据库设计 数据库设计规约 以下规约只针对本模块&#xff0c;更全面的文档参考《阿里巴巴Java开发手册》&#xff1a;五、MySQL数据库 1、库名与应用名称尽量一致 2、表名、字段名必须使用小写字母或数字&#xff0c;禁止出现数字开头&#xff0c; 3、表名不使用复数名…

idea导入springboot项目运行教程

前置要求 ①具备Java环境&#xff0c;并且可以通过Maven进行安装项目依赖&#xff1b; ②具备IntelliJ IDEA工具&#xff0c;推荐专业版&#xff0c;社区版也不影响&#xff1b; ③具备Mysql5.7或以上版本数据库&#xff1b; ④具备Navicat数据库可视化管理工具&#xff1b;…

力扣(LeetCode)14. 最长公共前缀(C++)

模拟 取出 strsstrsstrs 的第一个字符串 strs[0]strs[0]strs[0] &#xff0c; 遍历strs[0]strs[0]strs[0] &#xff0c; 依次比较所有串的当前位置的字符&#xff0c;是否和 strs[0]strs[0]strs[0] 的当前字符相同。 代码展示 class Solution { public:string longestCommon…

现代修谱,如何处理族员离婚再娶,配偶携子改嫁同服弟等情况

现代修谱的那些糟心事 现代修谱过程中&#xff0c;会遇到各种突发情况以及非常棘手的问题。比如说族员离婚再娶&#xff0c;配偶携子改嫁同服弟的情况&#xff0c;族谱该如何记载&#xff1f;很多人都以为这是笔者在说笑&#xff0c;但这种情况在修谱时&#xff0c;不能说很难…

Qt源码解析11-QLineEdit与QValidator关系源码解析

Qt源码解析 索引 Qt源码解析11-QLineEdit与QValidator关系源码解析 测试 本想了解QRegExpValidator的正则表达式如何生效的&#xff0c;发现分析起来比想象的复杂。 测试实例&#xff1a; // regexp: optional - followed by between 1 and 3 digitsQRegExp rx("-?\…

JUC学习笔记——共享模型之管程

在本系列内容中我们会对JUC做一个系统的学习&#xff0c;本片将会介绍JUC的管程部分 我们会分为以下几部分进行介绍&#xff1a; 共享问题共享问题解决方案线程安全分析Monitorsynchronized锁Wait/notify模式之保护性暂停模式之生产者消费者park线程状态转换详解多锁操作活跃…

学生护眼灯怎么选择?推荐学生护眼台灯十大名牌排行榜

护眼台灯是学生们常用的照明产品&#xff0c;也是最受喜爱的护眼产品之一&#xff0c;选购一款护眼台灯要看什么指标呢&#xff1f;除了外观、价格上&#xff0c;更重要的是五个硬性标准&#xff0c;照度、显色、频闪、色温、蓝光。 为了大家更快速选择出合适的台灯&#xff0…

基于51单片机的出租车计价器proteus仿真原理图PCB

功能&#xff1a; 0.本系统采用STC89C52作为单片机 1.LCD1602液晶显示有四个状态 a) 时间显示 b) 时间设置 c) 计价器显示 d) 计价器设置 2.按键切换四个不同显示状态 3.默认为时间显示状态&#xff0c;长按’切换‘键切换至计价器模式 4.在时间显示状态下按‘设置’键可设置时…

C++类的运算符重载.md

11.8 类的运算符重载 运算符重载是一种形式的C多态 运算符重载将充值该的概念扩展到运算符上&#xff0c;允许赋予C运算符多种含义。 C允许将运算符重载扩展到用户定义类型&#xff0c;例如&#xff0c;允许使用将两个对象相加。 11.8.1 操作符重载定义 要重载运算符&#xff0…

FutureTask-详解(二)-ThreadPollExecutor-并发编程(Java)

文章目录1 FutureTask1.1 简介1.2 成员变量1.3 构造方法1.4 主要执行流程分析1.4.1 run任务执行1.4.1.1 run方法1.4.1.2 set(result)方法1.4.1.3 setException(ex)方法1.4.1.4 finishCompletion()方法1.4.2 get() 执行流程1.4.2.1 get()方法1.4.2.2 awaitDone()方法1.4.2.3 rem…

C++获取计算机硬件信息(Linux)

C获取计算机硬件信息&#xff08;Windows&#xff09; https://blog.csdn.net/hhy321/article/details/121258036 C获取计算机硬件信息&#xff08;Linux&#xff09; https://blog.csdn.net/hhy321/article/details/127930470 “春赏百花秋望月&#xff0c;夏有凉风冬观雪。若…

InnoDB之Undo log写入和恢复

1. 前言 为了实现事务的回滚和MVCC&#xff0c;InnoDB设计了Undo log模块&#xff0c;简单来说就是在修改记录前先记下日志&#xff0c;以便之后能将记录恢复成修改前的样子。针对insert、delete、update这三种不同的操作&#xff0c;InnoDB设计了不同类型的undo log&#xff…

Redis 常见问题

一、 什么是Redis&#xff1f; Redis 是一个使用 C 语言写成的&#xff0c;开源的高性能key-value非关系缓存数据库&#xff1b;Redis的数据都基于缓存的&#xff0c;所以很快&#xff0c;每秒可以处理超过 10万次读写操作&#xff1b;Redis也可以实现数据写入磁盘中&#xff…