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

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

大家好!我是程序猿老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);@Autowiredprivate ChongwujiyangService chongwujiyangService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//级联表service@Autowiredprivate YonghuService yonghuService;@Autowiredprivate 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转viewChongwujiyangView 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转viewChongwujiyangView 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或源码,以及其他定制需求,也可以点我头像查看个人简介联系。

相关文章:

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

大家好&#xff01;我是程序猿老A&#xff0c;感谢您阅读本文&#xff0c;欢迎一键三连哦。 &#x1f49e;当前专栏&#xff1a;Java毕业设计 精彩专栏推荐&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f380; Python毕业设计 &…...

力扣刷题:四数相加Ⅱ

题目详情&#xff1a; 解法一&#xff1a;暴力枚举 对于这道题&#xff0c;我们的第一思路就是暴力枚举&#xff0c;我们可以写一个四层的for循环进行暴力匹配&#xff0c;只要相加的结果等于0就进行统计。但是我们会发现&#xff0c;我们的事件复杂度为O(N^4)事件复杂度非常大…...

如果通过Glide 设置图片圆角

要给图片设置一个圆角,通常方法是在ImageView 标签外添加一个CardView 标签,然后设置圆角值,但是今天遇到一个问题就是 RecyclerView Item 中这样操作的话会遇到这样的一个报错: Cannot call this method while RecyclerView is computing a layout or scrolling androidx.rec…...

Chatgpt学习技巧

论文润色指令 论文润色常用指令 通用话术&#xff1a; Below is a paragraph from an academic paper. Polish the writing to meet the academic style, improve the spelling, grammar, clarity, concision and overall readability. When necessary, rewrite the whole se…...

[初学rust] 06_rust 元组

rust 元组 表现形式 和python的元组类似&#xff0c;rust中的元组是一个有序列表&#xff0c;可以包含多种不同类型的数据。 let tup (500, 6.4, a);模式匹配解构元组 和python中的解构一样&#xff0c;rust也支持模式匹配解构元组&#xff0c;但是需要注意的是&#xff0…...

基于 LlaMA 3 + LangGraph 在windows本地部署大模型 (四)

基于 LlaMA 3 LangGraph 在windows本地部署大模型 &#xff08;四&#xff09; 大家继续看 https://lilianweng.github.io/posts/2023-06-23-agent/的文档内容 第三部分&#xff1a;工具使用 工具的使用是人类的一个显着而显着的特征。我们创造、修改和利用外部物体来完成超…...

C++进阶:哈希(1)

目录 1. 简介unordered_set与unordered_map2. 哈希表&#xff08;散列&#xff09;2.1 哈希表的引入2.2 闭散列的除留余数法2.2.1 前置知识补充与描述2.2.2 闭散列哈希表实现 2.3 开散列的哈希桶2.3.1 结构描述2.3.2 开散列哈希桶实现2.3.3 哈希桶的迭代器与key值处理仿函数 3.…...

第三节课,功能2:开发后端用户的管理接口-- postman--debug测试

一、如何使用postman 网址&#xff1a; https://www.postman.com/downloads/ 【Postman小白教程】五分钟学会如何使用Postman~_哔哩哔哩_bilibili postman安装使用_bowser agent在postman哪里-CSDN博客 二、下载后 登录&#xff0c;开始测试 2.1 关于postman 报错&#…...

Docker-compsoe部署prysm-beacon-chain + geth服务(geth版本v1.14.0)

1、创建目录结构 ~ # mkdir -p /data/docker-compose/eth ~ # cd /data/docker-compose/eth /data/docker-compose/eth# mkdir beacondata eth ethdata prysm2、编写prysm-beacon-chain Dockerfile和启动脚本文件 /data/docker-compose/eth# vim Dockerfile /data/docker-…...

前端人员如何理解进程和线程

进程和线程的概念&#xff1a; 进程和线程本质都是cpu工作过程的时间片。 进程可以理解为cpu在运行指令即加载保存上下文所要用的时间。也可以理解为一个应用程序运行的实例。 线程是进程中更小的单位&#xff0c;描述一段指令所需要的时间。 进程是资源分配的最小单位&#xf…...

Linux下网络命令

目录 需求1-查看本机是否存在22端口解法1解法2解法3 需求2-查看其他主机是否存在22端口解法1解法2解法3 需求3-查看TCP连接解法1/2 需求4-统计80端口tcp连接次数解法 需求5-查看总体网络速度解法 需求6-查看进程流量解法 需求7-dns解法 需求8-traceroute到baidu解法 需求9-查看…...

Php swoole和mqtt

在 PHP 中使用 Swoole 处理 MQTT 订阅消息是一种高效的方式&#xff0c;可以充分利用 Swoole 协程的非阻塞特性和高性能 I/O 处理能力。下面是一个示例代码&#xff0c;演示了如何使用 Swoole 的 MQTT 客户端来订阅消息&#xff0c;并加以详细说明。 1. 安装 Swoole 首先&…...

Spring STOMP-连接到消息代理

STOMP 代理中继维护一个与消息代理的“系统”TCP 连接。这个连接仅用于来自服务器端应用程序的消息&#xff0c;不用于接收消息。您可以为此连接配置STOMP凭据&#xff08;即STOMP帧的login和passcode头部&#xff09;。这在XML命名空间和Java配置中都以systemLogin和systemPas…...

Excel中的`MMULT`函数

Excel中的MMULT函数是一个用于执行矩阵乘法运算的函数。矩阵乘法是线性代数中的一个基本运算&#xff0c;它允许我们计算两个矩阵的乘积&#xff0c;得到一个新的矩阵。与普通的标量乘法不同&#xff0c;矩阵乘法涉及到行与列的对应元素相乘然后求和的过程。MMULT函数在进行数据…...

孩子多大可以接触python?学习python的好处

孩子接触Python的年龄并没有明确的界限&#xff0c;一般来说&#xff0c;6岁以上的孩子可以开始学习Python编程。虽然Python是一门高级编程语言&#xff0c;但它的语法简单易懂&#xff0c;适合初学者入门。通过学习Python编程&#xff0c;孩子可以培养逻辑思维、创造力和解决问…...

四川汇昌联信:拼多多网点怎么开?大概需要多少钱?

想要开一家拼多多网点&#xff0c;你肯定很关心需要准备多少资金。下面&#xff0c;我们就来详细解答这个问题&#xff0c;并从多个角度分析开设网点的要点。 一、 开设拼多多网点&#xff0c;首要任务是确定启动资金。根据不同的经营模式和地区差异&#xff0c;成本会有所不同…...

ROS 2边学边练(43)-- 利用GTest写一个基本测试(C++)

前言 在ROS&#xff08;Robot Operating System&#xff09;中&#xff0c;gtest&#xff08;Google Test&#xff09;是一个广泛使用的C测试框架&#xff0c;用于编写和执行单元测试。这些测试可以验证ROS节点、服务和消息等的正确性和性能。 如果我们需要在写的包中添加测试&…...

3.整数运算

系列文章目录 信息的表示和处理 : Information Storage&#xff08;信息存储&#xff09;Integer Representation&#xff08;整数表示&#xff09;Integer Arithmetic&#xff08;整数运算&#xff09;Floating Point&#xff08;浮点数&#xff09; 文章目录 系列文章目录前…...

uri.getQueryParameters(name)返回一个列表(List)

uri.getQueryParameters(name)返回一个列表&#xff08;List&#xff09;而不是单个值的原因在于URI&#xff08;统一资源标识符&#xff09;中查询参数&#xff08;query parameters&#xff09;的设计允许同一个名称&#xff08;name&#xff09;对应多个值。这意味着一个查询…...

鸿蒙ArkUI开发:常用布局【主轴】

ArkUI中常用布局容器 线性布局&#xff08;Row/Column&#xff09; 线性布局的子元素在线性方向上&#xff08;水平方向和垂直方向&#xff09;依次排列线性布局容器包括[Row]和[Column]。Column容器内子元素按照垂直方向排列&#xff0c;Row容器内子元素按照水平方向排列开发…...

使用分级同态加密防御梯度泄漏

抽象 联邦学习 &#xff08;FL&#xff09; 支持跨分布式客户端进行协作模型训练&#xff0c;而无需共享原始数据&#xff0c;这使其成为在互联和自动驾驶汽车 &#xff08;CAV&#xff09; 等领域保护隐私的机器学习的一种很有前途的方法。然而&#xff0c;最近的研究表明&…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

linux 错误码总结

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

【AI学习】三、AI算法中的向量

在人工智能&#xff08;AI&#xff09;算法中&#xff0c;向量&#xff08;Vector&#xff09;是一种将现实世界中的数据&#xff08;如图像、文本、音频等&#xff09;转化为计算机可处理的数值型特征表示的工具。它是连接人类认知&#xff08;如语义、视觉特征&#xff09;与…...

css3笔记 (1) 自用

outline: none 用于移除元素获得焦点时默认的轮廓线 broder:0 用于移除边框 font-size&#xff1a;0 用于设置字体不显示 list-style: none 消除<li> 标签默认样式 margin: xx auto 版心居中 width:100% 通栏 vertical-align 作用于行内元素 / 表格单元格&#xff…...

大学生职业发展与就业创业指导教学评价

这里是引用 作为软工2203/2204班的学生&#xff0c;我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要&#xff0c;而您认真负责的教学态度&#xff0c;让课程的每一部分都充满了实用价值。 尤其让我…...

MySQL用户和授权

开放MySQL白名单 可以通过iptables-save命令确认对应客户端ip是否可以访问MySQL服务&#xff1a; test: # iptables-save | grep 3306 -A mp_srv_whitelist -s 172.16.14.102/32 -p tcp -m tcp --dport 3306 -j ACCEPT -A mp_srv_whitelist -s 172.16.4.16/32 -p tcp -m tcp -…...

关键领域软件测试的突围之路:如何破解安全与效率的平衡难题

在数字化浪潮席卷全球的今天&#xff0c;软件系统已成为国家关键领域的核心战斗力。不同于普通商业软件&#xff0c;这些承载着国家安全使命的软件系统面临着前所未有的质量挑战——如何在确保绝对安全的前提下&#xff0c;实现高效测试与快速迭代&#xff1f;这一命题正考验着…...

基于Java+MySQL实现(GUI)客户管理系统

客户资料管理系统的设计与实现 第一章 需求分析 1.1 需求总体介绍 本项目为了方便维护客户信息为了方便维护客户信息&#xff0c;对客户进行统一管理&#xff0c;可以把所有客户信息录入系统&#xff0c;进行维护和统计功能。可通过文件的方式保存相关录入数据&#xff0c;对…...

JavaScript 数据类型详解

JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型&#xff08;Primitive&#xff09; 和 对象类型&#xff08;Object&#xff09; 两大类&#xff0c;共 8 种&#xff08;ES11&#xff09;&#xff1a; 一、原始类型&#xff08;7种&#xff09; 1. undefined 定…...