Springboot+Vue项目-基于Java+MySQL的流浪动物管理系统(附源码+演示视频+LW)

news2024/11/19 3:42:46

大家好!我是程序猿老A,感谢您阅读本文,欢迎一键三连哦。

💞当前专栏:Java毕业设计

精彩专栏推荐👇🏻👇🏻👇🏻

🎀 Python毕业设计
🌎微信小程序毕业设计

开发环境

开发语言:Java
框架:Springboot+Vue
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql 5.7
数据库工具:Navicat12
开发软件:eclipse/myeclipse/idea
Maven包:Maven3.3.9
浏览器:谷歌浏览器

演示视频

springboot277流浪动物管理系统

原版高清演示视频-编号277:
https://pan.quark.cn/s/5cda95b17ee0

源码下载地址:

https://download.csdn.net/download/2301_76953549/89100218

LW目录

【如需全文请按文末获取联系】
在这里插入图片描述
在这里插入图片描述

目录

  • 开发环境
  • 演示视频
  • 源码下载地址:
  • LW目录
  • 一、项目简介
  • 二、系统设计
    • 2.1软件功能模块设计
    • 2.2数据库设计
  • 三、系统项目部分截图
    • 3.1管理员功能实现
    • 3.2自愿者功能实现
    • 3.3用户功能实现
  • 四、部分核心代码
    • 4.1 用户部分
  • 获取源码或论文

一、项目简介

流浪动物管理系统通过MySQL数据库与Spring Boot框架进行开发,流浪动物管理系统能够实现宠物信息管理,宠物留言管理,宠物收藏管理,宠物寄养管理,宠物领养管理,宠物领养审核管理等功能。

二、系统设计

2.1软件功能模块设计

在这里插入图片描述

自愿者功能结构图的绘制结果见图4-2。自愿者登录进入本系统操作的功能包括查看宠物信息,宠物领养以及宠物寄养信息,管理论坛,查看公告等。
在这里插入图片描述
用户功能结构图的绘制结果见图4-3。用户登录进入本系统操作的功能包括领养可认领的宠物,发布宠物留言信息,通过论坛模块发布交流信息,发布宠物寄养信息,查看宠物寄养的审核结果信息,以及申请领养宠物的审核结果信息。
在这里插入图片描述

2.2数据库设计

(1)使用Visio这样的常用的实体属性图绘制工具来绘制用户实体属性图,绘制结果见图4-3。
在这里插入图片描述
(2)使用Visio这样的常用的实体属性图绘制工具来绘制宠物寄养实体属性图,绘制结果见图4-4。
在这里插入图片描述
(3)使用Visio这样的常用的实体属性图绘制工具来绘制宠物领养实体属性图,绘制结果见图4-5。
在这里插入图片描述

(4)使用Visio这样的常用的实体属性图绘制工具来绘制管理员实体属性图,绘制结果见图4-6。
在这里插入图片描述
(5)绘制的上述实体间存在的联系见图4-7。
在这里插入图片描述

三、系统项目部分截图

3.1管理员功能实现

宠物信息管理
管理员进入如图5-1所示的宠物信息管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成宠物信息的修改,删除操作,宠物信息包括宠物照片,宠物类型等信息。管理员在宠物信息管理界面点击新增按钮可以登记宠物信息。

在这里插入图片描述
宠物领养管理
管理员进入如图5-3所示的宠物领养管理界面之后,管理员点击信息显示栏中最右侧的修改,删除按钮可依次完成宠物领养信息的修改,删除操作。宠物领养信息包括宠物图片,是否被认领等信息。
在这里插入图片描述

3.2自愿者功能实现

宠物寄养查看
自愿者进入如图5-6所示的宠物寄养查看界面之后,自愿者点击信息显示栏中最右侧的详情按钮可完成宠物寄养信息的详情查看操作,自愿者也能查询宠物寄养信息,查询条件包括根据宠物名称或宠物类型等字段进行查询。
在这里插入图片描述

3.3用户功能实现

宠物信息
用户进入如图5-7所示的宠物信息界面之后,用户可以查看宠物信息界面右侧区域展示的系统推荐的宠物信息,可以在宠物信息界面的下方留言区域发布宠物留言。
在这里插入图片描述
宠物寄养管理
用户进入如图5-10所示的宠物寄养管理界面之后,用户点击信息显示栏中最右侧的详情,删除按钮可依次完成宠物寄养信息的详情查看,删除操作。用户在宠物寄养管理界面点击新增按钮即可发布宠物寄养信息。
在这里插入图片描述

四、部分核心代码

4.1 用户部分


package com.controller;

import java.io.File;
import java.math.BigDecimal;
import java.net.URL;
import java.text.SimpleDateFormat;
import com.alibaba.fastjson.JSONObject;
import java.util.*;
import org.springframework.beans.BeanUtils;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.ContextLoader;
import javax.servlet.ServletContext;
import com.service.TokenService;
import com.utils.*;
import java.lang.reflect.InvocationTargetException;

import com.service.DictionaryService;
import org.apache.commons.lang3.StringUtils;
import com.annotation.IgnoreAuth;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.entity.*;
import com.entity.view.*;
import com.service.*;
import com.utils.PageUtils;
import com.utils.R;
import com.alibaba.fastjson.*;

/**
 * 宠物寄养
 * 后端接口
 * @author
 * @email
*/
@RestController
@Controller
@RequestMapping("/chongwujiyang")
public class ChongwujiyangController {
    private static final Logger logger = LoggerFactory.getLogger(ChongwujiyangController.class);

    @Autowired
    private ChongwujiyangService chongwujiyangService;


    @Autowired
    private TokenService tokenService;
    @Autowired
    private DictionaryService dictionaryService;

    //级联表service
    @Autowired
    private YonghuService yonghuService;

    @Autowired
    private ZiyuanzheService ziyuanzheService;


    /**
    * 后端列表
    */
    @RequestMapping("/page")
    public R page(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("page方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));
        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永不会进入");
        else if("用户".equals(role))
            params.put("yonghuId",request.getSession().getAttribute("userId"));
        else if("自愿者".equals(role))
            params.put("ziyuanzheId",request.getSession().getAttribute("userId"));
        if(params.get("orderBy")==null || params.get("orderBy")==""){
            params.put("orderBy","id");
        }
        PageUtils page = chongwujiyangService.queryPage(params);

        //字典表数据转换
        List<ChongwujiyangView> list =(List<ChongwujiyangView>)page.getList();
        for(ChongwujiyangView c:list){
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(c, request);
        }
        return R.ok().put("data", page);
    }

    /**
    * 后端详情
    */
    @RequestMapping("/info/{id}")
    public R info(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("info方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ChongwujiyangEntity chongwujiyang = chongwujiyangService.selectById(id);
        if(chongwujiyang !=null){
            //entity转view
            ChongwujiyangView view = new ChongwujiyangView();
            BeanUtils.copyProperties( chongwujiyang , view );//把实体数据重构到view中

                //级联表
                YonghuEntity yonghu = yonghuService.selectById(chongwujiyang.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createTime", "insertTime", "updateTime"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
            //修改对应字典表字段
            dictionaryService.dictionaryConvert(view, request);
            return R.ok().put("data", view);
        }else {
            return R.error(511,"查不到数据");
        }

    }

    /**
    * 后端保存
    */
    @RequestMapping("/save")
    public R save(@RequestBody ChongwujiyangEntity chongwujiyang, HttpServletRequest request){
        logger.debug("save方法:,,Controller:{},,chongwujiyang:{}",this.getClass().getName(),chongwujiyang.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
        if(false)
            return R.error(511,"永远不会进入");
        else if("用户".equals(role))
            chongwujiyang.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));

        Wrapper<ChongwujiyangEntity> queryWrapper = new EntityWrapper<ChongwujiyangEntity>()
            .eq("yonghu_id", chongwujiyang.getYonghuId())
            .eq("chongwu_name", chongwujiyang.getChongwuName())
            .eq("chongwu_types", chongwujiyang.getChongwuTypes())
            .eq("jiyang_riqi_time", new SimpleDateFormat("yyyy-MM-dd").format(chongwujiyang.getJiyangRiqiTime()))
            .eq("jiyang_tianshu", chongwujiyang.getJiyangTianshu())
            .eq("jiyangdizhi", chongwujiyang.getJiyangdizhi())
            .eq("lianxiren_name", chongwujiyang.getLianxirenName())
            .eq("lianxiren_phone", chongwujiyang.getLianxirenPhone())
            .eq("chongwujiyang_yesno_types", chongwujiyang.getChongwujiyangYesnoTypes())
            .eq("chongwujiyang_yesno_text", chongwujiyang.getChongwujiyangYesnoText())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ChongwujiyangEntity chongwujiyangEntity = chongwujiyangService.selectOne(queryWrapper);
        if(chongwujiyangEntity==null){
            chongwujiyang.setChongwujiyangYesnoTypes(1);
            chongwujiyang.setInsertTime(new Date());
            chongwujiyang.setCreateTime(new Date());
            chongwujiyangService.insert(chongwujiyang);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 后端修改
    */
    @RequestMapping("/update")
    public R update(@RequestBody ChongwujiyangEntity chongwujiyang, HttpServletRequest request){
        logger.debug("update方法:,,Controller:{},,chongwujiyang:{}",this.getClass().getName(),chongwujiyang.toString());

        String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");
//        else if("用户".equals(role))
//            chongwujiyang.setYonghuId(Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId"))));
        //根据字段查询是否有相同数据
        Wrapper<ChongwujiyangEntity> queryWrapper = new EntityWrapper<ChongwujiyangEntity>()
            .notIn("id",chongwujiyang.getId())
            .andNew()
            .eq("yonghu_id", chongwujiyang.getYonghuId())
            .eq("chongwu_name", chongwujiyang.getChongwuName())
            .eq("chongwu_types", chongwujiyang.getChongwuTypes())
            .eq("jiyang_riqi_time", chongwujiyang.getJiyangRiqiTime())
            .eq("jiyang_tianshu", chongwujiyang.getJiyangTianshu())
            .eq("jiyangdizhi", chongwujiyang.getJiyangdizhi())
            .eq("lianxiren_name", chongwujiyang.getLianxirenName())
            .eq("lianxiren_phone", chongwujiyang.getLianxirenPhone())
            .eq("chongwujiyang_yesno_types", chongwujiyang.getChongwujiyangYesnoTypes())
            .eq("chongwujiyang_yesno_text", chongwujiyang.getChongwujiyangYesnoText())
            .eq("insert_time", chongwujiyang.getInsertTime())
            ;

        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ChongwujiyangEntity chongwujiyangEntity = chongwujiyangService.selectOne(queryWrapper);
        if("".equals(chongwujiyang.getChongwuPhoto()) || "null".equals(chongwujiyang.getChongwuPhoto())){
                chongwujiyang.setChongwuPhoto(null);
        }
        if(chongwujiyangEntity==null){
            chongwujiyangService.updateById(chongwujiyang);//根据id更新
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }

    /**
    * 删除
    */
    @RequestMapping("/delete")
    public R delete(@RequestBody Integer[] ids){
        logger.debug("delete:,,Controller:{},,ids:{}",this.getClass().getName(),ids.toString());
        chongwujiyangService.deleteBatchIds(Arrays.asList(ids));
        return R.ok();
    }


    /**
     * 批量上传
     */
    @RequestMapping("/batchInsert")
    public R save( String fileName, HttpServletRequest request){
        logger.debug("batchInsert方法:,,Controller:{},,fileName:{}",this.getClass().getName(),fileName);
        Integer yonghuId = Integer.valueOf(String.valueOf(request.getSession().getAttribute("userId")));
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        try {
            List<ChongwujiyangEntity> chongwujiyangList = new ArrayList<>();//上传的东西
            Map<String, List<String>> seachFields= new HashMap<>();//要查询的字段
            Date date = new Date();
            int lastIndexOf = fileName.lastIndexOf(".");
            if(lastIndexOf == -1){
                return R.error(511,"该文件没有后缀");
            }else{
                String suffix = fileName.substring(lastIndexOf);
                if(!".xls".equals(suffix)){
                    return R.error(511,"只支持后缀为xls的excel文件");
                }else{
                    URL resource = this.getClass().getClassLoader().getResource("static/upload/" + fileName);//获取文件路径
                    File file = new File(resource.getFile());
                    if(!file.exists()){
                        return R.error(511,"找不到上传文件,请联系管理员");
                    }else{
                        List<List<String>> dataList = PoiUtil.poiImport(file.getPath());//读取xls文件
                        dataList.remove(0);//删除第一行,因为第一行是提示
                        for(List<String> data:dataList){
                            //循环
                            ChongwujiyangEntity chongwujiyangEntity = new ChongwujiyangEntity();
//                            chongwujiyangEntity.setYonghuId(Integer.valueOf(data.get(0)));   //用户 要改的
//                            chongwujiyangEntity.setChongwuName(data.get(0));                    //宠物名称 要改的
//                            chongwujiyangEntity.setChongwuPhoto("");//详情和图片
//                            chongwujiyangEntity.setChongwuTypes(Integer.valueOf(data.get(0)));   //宠物类型 要改的
//                            chongwujiyangEntity.setJiyangRiqiTime(sdf.parse(data.get(0)));          //寄养日期 要改的
//                            chongwujiyangEntity.setJiyangTianshu(Integer.valueOf(data.get(0)));   //寄养天数 要改的
//                            chongwujiyangEntity.setJiyangdizhi(data.get(0));                    //寄养地址 要改的
//                            chongwujiyangEntity.setLianxirenName(data.get(0));                    //联系人姓名 要改的
//                            chongwujiyangEntity.setLianxirenPhone(data.get(0));                    //联系人手机号 要改的
//                            chongwujiyangEntity.setChongwujiyangContent("");//详情和图片
//                            chongwujiyangEntity.setChongwujiyangYesnoTypes(Integer.valueOf(data.get(0)));   //审核状态 要改的
//                            chongwujiyangEntity.setChongwujiyangYesnoText(data.get(0));                    //审核意见 要改的
//                            chongwujiyangEntity.setInsertTime(date);//时间
//                            chongwujiyangEntity.setCreateTime(date);//时间
                            chongwujiyangList.add(chongwujiyangEntity);


                            //把要查询是否重复的字段放入map中
                        }

                        //查询是否重复
                        chongwujiyangService.insertBatch(chongwujiyangList);
                        return R.ok();
                    }
                }
            }
        }catch (Exception e){
            e.printStackTrace();
            return R.error(511,"批量插入数据异常,请联系管理员");
        }
    }





    /**
    * 前端列表
    */
    @IgnoreAuth
    @RequestMapping("/list")
    public R list(@RequestParam Map<String, Object> params, HttpServletRequest request){
        logger.debug("list方法:,,Controller:{},,params:{}",this.getClass().getName(),JSONObject.toJSONString(params));

        // 没有指定排序字段就默认id倒序
        if(StringUtil.isEmpty(String.valueOf(params.get("orderBy")))){
            params.put("orderBy","id");
        }
        PageUtils page = chongwujiyangService.queryPage(params);

        //字典表数据转换
        List<ChongwujiyangView> list =(List<ChongwujiyangView>)page.getList();
        for(ChongwujiyangView c:list)
            dictionaryService.dictionaryConvert(c, request); //修改对应字典表字段
        return R.ok().put("data", page);
    }

    /**
    * 前端详情
    */
    @RequestMapping("/detail/{id}")
    public R detail(@PathVariable("id") Long id, HttpServletRequest request){
        logger.debug("detail方法:,,Controller:{},,id:{}",this.getClass().getName(),id);
        ChongwujiyangEntity chongwujiyang = chongwujiyangService.selectById(id);
            if(chongwujiyang !=null){


                //entity转view
                ChongwujiyangView view = new ChongwujiyangView();
                BeanUtils.copyProperties( chongwujiyang , view );//把实体数据重构到view中

                //级联表
                    YonghuEntity yonghu = yonghuService.selectById(chongwujiyang.getYonghuId());
                if(yonghu != null){
                    BeanUtils.copyProperties( yonghu , view ,new String[]{ "id", "createDate"});//把级联的数据添加到view中,并排除id和创建时间字段
                    view.setYonghuId(yonghu.getId());
                }
                //修改对应字典表字段
                dictionaryService.dictionaryConvert(view, request);
                return R.ok().put("data", view);
            }else {
                return R.error(511,"查不到数据");
            }
    }


    /**
    * 前端保存
    */
    @RequestMapping("/add")
    public R add(@RequestBody ChongwujiyangEntity chongwujiyang, HttpServletRequest request){
        logger.debug("add方法:,,Controller:{},,chongwujiyang:{}",this.getClass().getName(),chongwujiyang.toString());
        Wrapper<ChongwujiyangEntity> queryWrapper = new EntityWrapper<ChongwujiyangEntity>()
            .eq("yonghu_id", chongwujiyang.getYonghuId())
            .eq("chongwu_name", chongwujiyang.getChongwuName())
            .eq("chongwu_types", chongwujiyang.getChongwuTypes())
            .eq("jiyang_tianshu", chongwujiyang.getJiyangTianshu())
            .eq("jiyangdizhi", chongwujiyang.getJiyangdizhi())
            .eq("lianxiren_name", chongwujiyang.getLianxirenName())
            .eq("lianxiren_phone", chongwujiyang.getLianxirenPhone())
            .eq("chongwujiyang_yesno_types", chongwujiyang.getChongwujiyangYesnoTypes())
            .eq("chongwujiyang_yesno_text", chongwujiyang.getChongwujiyangYesnoText())
            ;
        logger.info("sql语句:"+queryWrapper.getSqlSegment());
        ChongwujiyangEntity chongwujiyangEntity = chongwujiyangService.selectOne(queryWrapper);
        if(chongwujiyangEntity==null){
            chongwujiyang.setChongwujiyangYesnoTypes(1);
            chongwujiyang.setInsertTime(new Date());
            chongwujiyang.setCreateTime(new Date());
        chongwujiyangService.insert(chongwujiyang);
            return R.ok();
        }else {
            return R.error(511,"表中有相同数据");
        }
    }


}

获取源码或论文

如需对应的LW或源码,以及其他定制需求,也可以点我头像查看个人简介联系。

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

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

相关文章

华为OD机试 - 计算三叉搜索树的高度 - 二叉树(Java 2024 C卷 100分)

华为OD机试 2024C卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;A卷B卷C卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测试…

每日Attention学习1——Parallel Aggregation Pyramid Pooling Module

模块出处 [CVPR 23] [link] [code] PIDNet: A Real-time Semantic Segmentation Network Inspired by PID Controllers 模块名称 Parallel Aggregation Pyramid Pooling Module (PAPPM) 模块作用 多尺度特征提取&#xff0c;更大感受野 模块结构 模块代码 import torch imp…

C++聊天服务器数据库创建

创建数据库chat show databases&#xff1a;展示所有的数据库 create database chat&#xff1a;创建一个数据库chat use chat&#xff1a;使用数据库 创建表User、Friend、AllGroup、GroupUser、OfflineMessage 表User包含&#xff1a;用户id、用户名、用户密码、当前登录…

jsp驾校管理系统Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 JSP 驾校管理系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用serlvetdaobean mvc 模式&#xff0c;系统主要采用B/S模式开发。开发环境为TOMCAT7.0,Myeclipse8.5开发…

二叉树习题汇总

片头 嗨&#xff01;大家好&#xff0c;今天我们来练习几道二叉树的题目来巩固知识点&#xff0c;准备好了吗&#xff1f;Ready Go ! ! ! 第一题&#xff1a;二叉树的最大深度 解答这道题&#xff0c;我们采用分治思想 1. 递归子问题&#xff1a;左子树的高度和右子树的高度 …

绿盟之旅——一段安全实习结束

去年&#xff0c;因为着急找实习&#xff0c;拿着简历就开始海投&#xff0c;当时想的是有人让我去就谢天谢地了&#xff0c;第一个约我面试的就是绿盟&#xff0c;也很顺利的通过了面试&#xff0c;当时让我选择在上海还是北京&#xff0c;我选择的是上海&#xff0c;因为学校…

热红外相机图片与可见光图片配准教程

一、前言 图像配准是一种图像处理技术&#xff0c;用于将多个场景对齐到单个集成图像中。在这篇文章中&#xff0c;我将讨论如何在可见光及其相应的热图像上应用图像配准。在继续该过程之前&#xff0c;让我们看看什么是热图像及其属性。 二、热红外数据介绍 热图像本质上通…

高薪!【YesPMP】众包平台5月9日最新外包项目

【YesPMP】众包平台5月9日最新外包项目&#xff0c;感兴趣的小伙伴&#xff0c;可进入平台参与竞标&#xff0c;竞标后与项目方直接与联系&#xff0c;双方直接对接。 1.查看项目&#xff1a;go编写的协议网关成品代码(支持modbus,knx等) http:// https://www.yespmp.com/proj…

HTTPS 是如何进行安全传输的 ?

概述 现代密码学对信息的处理主要离不开以下的三种形式&#xff1a; 摘要&#xff1a;主要用于数据校验&#xff0c;例如存储密码等&#xff0c;摘要是对信息进行单向的哈希&#xff0c;改变信息的原有形态&#xff0c;因为哈希函数的特点是易变性&#xff08;即使微小的变化也…

医学四种概念:B超、X光、CT、核磁共振

辐射检测&#xff1a;CT和X光 X光&#xff1a;X光检测价格低、时间短、出片快、辐射小&#xff0c;适合前期检查。由于人体各个组织对X线所产生的影响是不同的&#xff0c;所以就有不同的反应实验就是下图 生成的图片为&#xff0c;它把三维的你压缩成二维的图片了&#xff0c…

上位机图像处理和嵌入式模块部署(树莓派4b和mcu的分工与配合)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 树莓派4b从广义上来说&#xff0c;它本身就是一个mini小电脑。我们需要什么软件&#xff0c;就可以apt install去下载即可。这和之前嵌入式linux开…

探索设计模式的魅力:权力集中,效率提升,中心化模式的优势与挑战

​&#x1f308; 个人主页&#xff1a;danci_ &#x1f525; 系列专栏&#xff1a;《设计模式》 &#x1f4aa;&#x1f3fb; 制定明确可量化的目标&#xff0c;坚持默默的做事。 ✨欢迎加入探索中心化模式之旅✨ 大家好啊&#xff01;&#x1f44b; 这次我们要聊的是IT界一…

matlab使用教程(66)—在图中绘制多条曲线(2019b以下版本)

您可以采用多种方式合并绘图。利用子图&#xff0c;可在同一坐标区中合并多个图&#xff0c;或在一个图窗中创建多个坐标区。 1.在同一坐标区中合并绘图 默认情况下&#xff0c;新图将清除现有图&#xff0c;并重置标题等坐标区属性。但是&#xff0c;您可以使用 hold on 命令…

Netty HTTP2 示例-响应式编程-013

🤗 ApiHug {Postman|Swagger|Api...} = 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱,有温度,有质量,有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace The Next Generation API Development Platform …

数据结构复习指导之二叉树的概念

文章目录 二叉树 考纲内容 复习提示 1.二叉树的概念 1.1二叉树的定义及其主要特性 1.1.1二叉树的定义 1.1.2几种特殊的二叉树 1.1.3二叉树的性质 1.2二叉树的存储结构 1.2.1顺序存储结构 1.2.2链式存储结构 知识回顾 二叉树 考纲内容 &#xff08;一&#xff09;树…

Rust 使用egui创建一个简单的下载器demo

仓库连接: https://github.com/GaN601/egui-demo-download-util 这是我第一个rust gui demo, 学习rust有挺长时间了, 但是一直没有落实到实践中, 本着对桌面应用的兴趣, 考察了slint、egui两种框架, 最后还是选择了egui. 这篇博客同时包含我当前的一些理解, 但是自身技术有限,…

中职大数据专业介绍:大数据技术应用

近年来&#xff0c;人工智能在经济发展、社会进步、国际政治经济格局等方面已经产生重大而深远的影响。规划纲要对“十四五”及未来十余年我国人工智能的发展目标、核心技术突破、智能化转型与应用&#xff0c;以及保障措施等多个方面都作出了部署。 据2020年全国教育事业发展统…

Python - 金三银四心路历程 之 数据结构与算法 刷题

目录 一.引言 二.心路历程 三.刷题经历 四.刷题历程 五.总结 一.引言 <夜深人静写算法> 是 23 年 12 月底博主打算跳槽时开始做刷题准备做的专栏&#xff0c;前后准备了大约一个月&#xff0c;刷题完毕后简单准备了项目和简历后就开始加入找工作大军了&#xff0c;最…

【DevOps】Jenkins 集成Docker

目录 1. 安装 Docker 和 Jenkins 2. 在 Jenkins 中安装 Docker 插件 3. 配置 Docker 连接 4. 创建 Jenkins Pipeline 5. 示例 Pipeline 脚本 6. 运行 Jenkins Job 7. 扩展功能 8、docker配置测试连接的时候报错处理 将 Docker 与 Jenkins 集成可以实现持续集成和持续交…

介绍 ffmpeg.dll 文件以及ffmpeg.dll丢失怎么办的五种修复方法

ffmpeg.dll 是一个动态链接库文件&#xff0c;属于 FFmpeg运行库。它在计算机上扮演着非常重要的角色&#xff0c;因为它提供了许多应用程序和操作系统所需的功能和组件。当 ffmpeg.dll 文件丢失或损坏时&#xff0c;可能会导致程序无法正常运行&#xff0c;甚至系统崩溃。下面…