当前位置: 首页 > 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
浏览器:谷歌浏览器

演示视频

springboot264基于JAVA的民族婚纱预定系统录像

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

源码下载地址:

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

LW目录

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

目录

  • 开发环境
  • 演示视频
  • 源码下载地址:
  • LW目录
  • 一、项目简介
  • 二、系统设计
    • 2.1软件功能模块设计
    • 2.2数据库设计
  • 三、系统项目部分截图
    • 3.1摄影师列表
    • 3.2公告信息管理
    • 3.3公告类型管理
  • 四、部分核心代码
    • 4.1 用户部分
  • 获取源码或论文

一、项目简介

管理员管理字典管理、公告管理、作品管理、作品收藏管理、作品留言管理、摄影师收藏管理、摄影师评价管理、摄影师留言管理、摄影师预约管理、用户管理、摄影师管理、管理员管理等功能。

二、系统设计

2.1软件功能模块设计

在分析并得出使用者对程序的功能要求时,就可以进行程序设计了。如图4.3展示的就是管理员功能结构图,管理员在后台主要管理字典管理、公告管理、作品管理、作品收藏管理、作品留言管理、摄影师收藏管理、摄影师评价管理、摄影师留言管理、摄影师预约管理、用户管理、摄影师管理、管理员管理等。

在这里插入图片描述

2.2数据库设计

(1)下图是作品收藏实体和其具备的属性。
在这里插入图片描述
(3)下图是摄影师收藏实体和其具备的属性。
在这里插入图片描述
(5)下图是作品留言实体和其具备的属性。
在这里插入图片描述

(6)下图是摄影师评价实体和其具备的属性。
在这里插入图片描述
(9)下图是摄影师预约实体和其具备的属性。
在这里插入图片描述

三、系统项目部分截图

3.1摄影师列表

如图5.1显示的就是摄影师列表页面,此页面提供给管理员的功能有:查看摄影师、新增摄影师、修改摄影师、删除摄影师等。
在这里插入图片描述

3.2公告信息管理

公告信息管理页面提供的功能操作有:新增公告,修改公告,删除公告操作。下图就是公告信息管理页面。
在这里插入图片描述

3.3公告类型管理

公告类型管理页面显示所有公告类型,在此页面既可以让管理员添加新的公告信息类型,也能对已有的公告类型信息执行编辑更新,失效的公告类型信息也能让管理员快速删除。下图就是公告类型管理页面。
在这里插入图片描述

四、部分核心代码

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("/sheyingshi")
public class SheyingshiController {private static final Logger logger = LoggerFactory.getLogger(SheyingshiController.class);@Autowiredprivate SheyingshiService sheyingshiService;@Autowiredprivate TokenService tokenService;@Autowiredprivate DictionaryService dictionaryService;//级联表service@Autowiredprivate YonghuService yonghuService;/*** 后端列表*/@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("sheyingshiId",request.getSession().getAttribute("userId"));if(params.get("orderBy")==null || params.get("orderBy")==""){params.put("orderBy","id");}PageUtils page = sheyingshiService.queryPage(params);//字典表数据转换List<SheyingshiView> list =(List<SheyingshiView>)page.getList();for(SheyingshiView 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);SheyingshiEntity sheyingshi = sheyingshiService.selectById(id);if(sheyingshi !=null){//entity转viewSheyingshiView view = new SheyingshiView();BeanUtils.copyProperties( sheyingshi , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody SheyingshiEntity sheyingshi, HttpServletRequest request){logger.debug("save方法:,,Controller:{},,sheyingshi:{}",this.getClass().getName(),sheyingshi.toString());String role = String.valueOf(request.getSession().getAttribute("role"));if(false)return R.error(511,"永远不会进入");Wrapper<SheyingshiEntity> queryWrapper = new EntityWrapper<SheyingshiEntity>().eq("username", sheyingshi.getUsername()).or().eq("sheyingshi_phone", sheyingshi.getSheyingshiPhone()).or().eq("sheyingshi_id_number", sheyingshi.getSheyingshiIdNumber());logger.info("sql语句:"+queryWrapper.getSqlSegment());SheyingshiEntity sheyingshiEntity = sheyingshiService.selectOne(queryWrapper);if(sheyingshiEntity==null){sheyingshi.setCreateTime(new Date());sheyingshi.setPassword("123456");sheyingshiService.insert(sheyingshi);return R.ok();}else {return R.error(511,"账户或者摄影师手机号或者摄影师身份证号已经被使用");}}/*** 后端修改*/@RequestMapping("/update")public R update(@RequestBody SheyingshiEntity sheyingshi, HttpServletRequest request){logger.debug("update方法:,,Controller:{},,sheyingshi:{}",this.getClass().getName(),sheyingshi.toString());String role = String.valueOf(request.getSession().getAttribute("role"));
//        if(false)
//            return R.error(511,"永远不会进入");//根据字段查询是否有相同数据Wrapper<SheyingshiEntity> queryWrapper = new EntityWrapper<SheyingshiEntity>().notIn("id",sheyingshi.getId()).andNew().eq("username", sheyingshi.getUsername()).or().eq("sheyingshi_phone", sheyingshi.getSheyingshiPhone()).or().eq("sheyingshi_id_number", sheyingshi.getSheyingshiIdNumber());logger.info("sql语句:"+queryWrapper.getSqlSegment());SheyingshiEntity sheyingshiEntity = sheyingshiService.selectOne(queryWrapper);if("".equals(sheyingshi.getSheyingshiPhoto()) || "null".equals(sheyingshi.getSheyingshiPhoto())){sheyingshi.setSheyingshiPhoto(null);}if(sheyingshiEntity==null){sheyingshiService.updateById(sheyingshi);//根据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());sheyingshiService.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<SheyingshiEntity> sheyingshiList = 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){//循环SheyingshiEntity sheyingshiEntity = new SheyingshiEntity();
//                            sheyingshiEntity.setUsername(data.get(0));                    //账户 要改的
//                            //sheyingshiEntity.setPassword("123456");//密码
//                            sheyingshiEntity.setSheyingshiUuidNumber(data.get(0));                    //摄影师工号 要改的
//                            sheyingshiEntity.setSheyingshiName(data.get(0));                    //摄影师姓名 要改的
//                            sheyingshiEntity.setSheyingshiPhone(data.get(0));                    //摄影师手机号 要改的
//                            sheyingshiEntity.setSheyingshiIdNumber(data.get(0));                    //摄影师身份证号 要改的
//                            sheyingshiEntity.setSheyingshiPhoto("");//详情和图片
//                            sheyingshiEntity.setSheyingshiShanchang(data.get(0));                    //摄影师擅长 要改的
//                            sheyingshiEntity.setSheyingshiDingjin(data.get(0));                    //摄影师预约定金 要改的
//                            sheyingshiEntity.setSheyingshiJiage(data.get(0));                    //摄影价格/次 要改的
//                            sheyingshiEntity.setSexTypes(Integer.valueOf(data.get(0)));   //性别 要改的
//                            sheyingshiEntity.setSheyingshiEmail(data.get(0));                    //电子邮箱 要改的
//                            sheyingshiEntity.setSheyingshiContent("");//详情和图片
//                            sheyingshiEntity.setCreateTime(date);//时间sheyingshiList.add(sheyingshiEntity);//把要查询是否重复的字段放入map中//账户if(seachFields.containsKey("username")){List<String> username = seachFields.get("username");username.add(data.get(0));//要改的}else{List<String> username = new ArrayList<>();username.add(data.get(0));//要改的seachFields.put("username",username);}//摄影师工号if(seachFields.containsKey("sheyingshiUuidNumber")){List<String> sheyingshiUuidNumber = seachFields.get("sheyingshiUuidNumber");sheyingshiUuidNumber.add(data.get(0));//要改的}else{List<String> sheyingshiUuidNumber = new ArrayList<>();sheyingshiUuidNumber.add(data.get(0));//要改的seachFields.put("sheyingshiUuidNumber",sheyingshiUuidNumber);}//摄影师手机号if(seachFields.containsKey("sheyingshiPhone")){List<String> sheyingshiPhone = seachFields.get("sheyingshiPhone");sheyingshiPhone.add(data.get(0));//要改的}else{List<String> sheyingshiPhone = new ArrayList<>();sheyingshiPhone.add(data.get(0));//要改的seachFields.put("sheyingshiPhone",sheyingshiPhone);}//摄影师身份证号if(seachFields.containsKey("sheyingshiIdNumber")){List<String> sheyingshiIdNumber = seachFields.get("sheyingshiIdNumber");sheyingshiIdNumber.add(data.get(0));//要改的}else{List<String> sheyingshiIdNumber = new ArrayList<>();sheyingshiIdNumber.add(data.get(0));//要改的seachFields.put("sheyingshiIdNumber",sheyingshiIdNumber);}}//查询是否重复//账户List<SheyingshiEntity> sheyingshiEntities_username = sheyingshiService.selectList(new EntityWrapper<SheyingshiEntity>().in("username", seachFields.get("username")));if(sheyingshiEntities_username.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(SheyingshiEntity s:sheyingshiEntities_username){repeatFields.add(s.getUsername());}return R.error(511,"数据库的该表中的 [账户] 字段已经存在 存在数据为:"+repeatFields.toString());}//摄影师工号List<SheyingshiEntity> sheyingshiEntities_sheyingshiUuidNumber = sheyingshiService.selectList(new EntityWrapper<SheyingshiEntity>().in("sheyingshi_uuid_number", seachFields.get("sheyingshiUuidNumber")));if(sheyingshiEntities_sheyingshiUuidNumber.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(SheyingshiEntity s:sheyingshiEntities_sheyingshiUuidNumber){repeatFields.add(s.getSheyingshiUuidNumber());}return R.error(511,"数据库的该表中的 [摄影师工号] 字段已经存在 存在数据为:"+repeatFields.toString());}//摄影师手机号List<SheyingshiEntity> sheyingshiEntities_sheyingshiPhone = sheyingshiService.selectList(new EntityWrapper<SheyingshiEntity>().in("sheyingshi_phone", seachFields.get("sheyingshiPhone")));if(sheyingshiEntities_sheyingshiPhone.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(SheyingshiEntity s:sheyingshiEntities_sheyingshiPhone){repeatFields.add(s.getSheyingshiPhone());}return R.error(511,"数据库的该表中的 [摄影师手机号] 字段已经存在 存在数据为:"+repeatFields.toString());}//摄影师身份证号List<SheyingshiEntity> sheyingshiEntities_sheyingshiIdNumber = sheyingshiService.selectList(new EntityWrapper<SheyingshiEntity>().in("sheyingshi_id_number", seachFields.get("sheyingshiIdNumber")));if(sheyingshiEntities_sheyingshiIdNumber.size() >0 ){ArrayList<String> repeatFields = new ArrayList<>();for(SheyingshiEntity s:sheyingshiEntities_sheyingshiIdNumber){repeatFields.add(s.getSheyingshiIdNumber());}return R.error(511,"数据库的该表中的 [摄影师身份证号] 字段已经存在 存在数据为:"+repeatFields.toString());}sheyingshiService.insertBatch(sheyingshiList);return R.ok();}}}}catch (Exception e){e.printStackTrace();return R.error(511,"批量插入数据异常,请联系管理员");}}/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {SheyingshiEntity sheyingshi = sheyingshiService.selectOne(new EntityWrapper<SheyingshiEntity>().eq("username", username));if(sheyingshi==null || !sheyingshi.getPassword().equals(password))return R.error("账号或密码不正确");//  // 获取监听器中的字典表// ServletContext servletContext = ContextLoader.getCurrentWebApplicationContext().getServletContext();// Map<String, Map<Integer, String>> dictionaryMap= (Map<String, Map<Integer, String>>) servletContext.getAttribute("dictionaryMap");// Map<Integer, String> role_types = dictionaryMap.get("role_types");// role_types.get(.getRoleTypes());String token = tokenService.generateToken(sheyingshi.getId(),username, "sheyingshi", "摄影师");R r = R.ok();r.put("token", token);r.put("role","摄影师");r.put("username",sheyingshi.getSheyingshiName());r.put("tableName","sheyingshi");r.put("userId",sheyingshi.getId());return r;}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody SheyingshiEntity sheyingshi){
//    	ValidatorUtils.validateEntity(user);Wrapper<SheyingshiEntity> queryWrapper = new EntityWrapper<SheyingshiEntity>().eq("username", sheyingshi.getUsername()).or().eq("sheyingshi_phone", sheyingshi.getSheyingshiPhone()).or().eq("sheyingshi_id_number", sheyingshi.getSheyingshiIdNumber());SheyingshiEntity sheyingshiEntity = sheyingshiService.selectOne(queryWrapper);if(sheyingshiEntity != null)return R.error("账户或者摄影师手机号或者摄影师身份证号已经被使用");sheyingshi.setCreateTime(new Date());sheyingshiService.insert(sheyingshi);return R.ok();}/*** 重置密码*/@GetMapping(value = "/resetPassword")public R resetPassword(Integer  id){SheyingshiEntity sheyingshi = new SheyingshiEntity();sheyingshi.setPassword("123456");sheyingshi.setId(id);sheyingshiService.updateById(sheyingshi);return R.ok();}/*** 忘记密码*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request) {SheyingshiEntity sheyingshi = sheyingshiService.selectOne(new EntityWrapper<SheyingshiEntity>().eq("username", username));if(sheyingshi!=null){sheyingshi.setPassword("123456");boolean b = sheyingshiService.updateById(sheyingshi);if(!b){return R.error();}}else{return R.error("账号不存在");}return R.ok();}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrSheyingshi(HttpServletRequest request){Integer id = (Integer)request.getSession().getAttribute("userId");SheyingshiEntity sheyingshi = sheyingshiService.selectById(id);if(sheyingshi !=null){//entity转viewSheyingshiView view = new SheyingshiView();BeanUtils.copyProperties( sheyingshi , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 前端列表*/@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 = sheyingshiService.queryPage(params);//字典表数据转换List<SheyingshiView> list =(List<SheyingshiView>)page.getList();for(SheyingshiView 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);SheyingshiEntity sheyingshi = sheyingshiService.selectById(id);if(sheyingshi !=null){//entity转viewSheyingshiView view = new SheyingshiView();BeanUtils.copyProperties( sheyingshi , view );//把实体数据重构到view中//修改对应字典表字段dictionaryService.dictionaryConvert(view, request);return R.ok().put("data", view);}else {return R.error(511,"查不到数据");}}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody SheyingshiEntity sheyingshi, HttpServletRequest request){logger.debug("add方法:,,Controller:{},,sheyingshi:{}",this.getClass().getName(),sheyingshi.toString());Wrapper<SheyingshiEntity> queryWrapper = new EntityWrapper<SheyingshiEntity>().eq("username", sheyingshi.getUsername()).or().eq("sheyingshi_phone", sheyingshi.getSheyingshiPhone()).or().eq("sheyingshi_id_number", sheyingshi.getSheyingshiIdNumber());logger.info("sql语句:"+queryWrapper.getSqlSegment());SheyingshiEntity sheyingshiEntity = sheyingshiService.selectOne(queryWrapper);if(sheyingshiEntity==null){sheyingshi.setCreateTime(new Date());sheyingshi.setPassword("123456");sheyingshiService.insert(sheyingshi);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毕业设计 &…...

Java面经学习2

来源 https://www.nowcoder.com/discuss/619573767051800576 1.一面内容 RocketMQ延时消息&#xff08;项目用到了&#xff09;底层怎么实现的&#xff08;不会&#xff09; 消息量太大导致读消息延迟时间很长怎么办 redis为什么快&#xff08;说了内存、数据结构优化、单线…...

Java bin目录中的文件如何执行?

在 Java 项目中&#xff0c;bin 目录通常用于存放编译后的 .class 文件。如果你将编译后的 .class 文件放在 bin 目录中&#xff0c;需要确保在运行 Java 程序时指定正确的类路径。下面是一个简单的例子说明如何执行 bin 目录中的文件。 假设你的项目结构如下&#xff1a; pr…...

Kafka和Spark Streaming的组合使用学习笔记(Spark 3.5.1)

一、安装Kafka 1.执行以下命令完成Kafka的安装&#xff1a; cd ~ //默认压缩包放在根目录 sudo tar -zxf kafka_2.12-2.6.0.tgz -C /usr/local cd /usr/local sudo mv kafka_2.12-2.6.0 kafka-2.6.0 sudo chown -R qiangzi ./kafka-2.6.0 二、启动Kafaka 1.首先需要启动K…...

5.9网络协议

由网卡发送数据通过网线进行发送&#xff0c;当网卡接收到信号以后将数据传给内核数据区&#xff0c;然后由操作系统交给相应的进程。 将数据进行发送的时候需要借助于网线实现&#xff0c;这个时候会出现当传输的数据比较远的时候就借助于中继器将信号进行再生扩大&#xff0…...

QT客户端开发的注意事项

QT客户端开发是一个涉及图形用户界面&#xff08;GUI&#xff09;设计、网络编程、数据库交互等多个方面的复杂过程。以下是在进行QT客户端开发时应注意的一些关键事项&#xff0c;通过关注这些事项&#xff0c;可以提高QT客户端应用的质量和开发效率。北京木奇移动技术有限公司…...

k8s源码编译失败:Makefile:1: *** 缺失分隔符。 停止。

目录 问题解决 更换Arch或系统 问题解决 编译k8s源码的kubelet时执行make失败&#xff1a;Makefile:1: *** 缺失分隔符。 停止。 首先&#xff0c;查看文件内容 # cat Makefile build/root/Makefile 修改Makefile&#xff0c;给第一行前增加include&#xff0c;如下&…...

服务器数据恢复—拯救raid5阵列数据行动,raid5数据恢复案例分享

Raid5数据恢复算法原理&#xff1a; 分布式奇偶校验的独立磁盘结构&#xff08;被称之为raid5&#xff09;的数据恢复有一个“奇偶校验”的概念。可以简单的理解为二进制运算中的“异或运算”&#xff0c;通常使用的标识是xor。运算规则&#xff1a;若二者值相同则结果为0&…...

旅游集市数仓建设

旅游集市数仓建设 小白如何从0到1成为大数据工程师 目录 旅游集市数仓建设 1.上传数据 2.可能用到的UDF函数 3.创建所需数据库及表 1&#xff09;ODS层 ①ods_oidd ②ods_wcdr ③ods_ddr ④ods_dpi 2&#xff09;DWD层 ①dwd_res_regn_mergelocation_msk_d ②dwm_s…...

vue实现点击高亮效果

<view class"tabs"><textv-for"(item, index) in subTypes":key"item.id"class"text":class"{ active: index activeIndex }"//动态绑定高亮类&#xff1a;判断下标是否等于当前下标tap"activeIndex index&…...

uniapp 配置请求代理+请求封装

uniapp官网提供了三种方式&#xff1a;什么是跨域 | uni-app官网 1. 通过uniapp自带浏览器 打开项目是不存在跨域的 第二种方式&#xff1a; "h5" : {"template" : "static/index.html","devServer": {"proxy": {&quo…...

代码随想录算法训练营第二十八天|​216.组合总和III​、17.电话号码的字母组合

216.组合总和III 文档讲解:代码随想录 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 这一题与昨天的组合差不多&#xff0c;区别就在只有和是目标值的时候才会加入到result数组中&#xff0c;并且在回溯时&#xff0c;会处理sum的值 class Solution:def __i…...

大模型prompt实例:知识库信息质量校验模块

大模型相关目录 大模型&#xff0c;包括部署微调prompt/Agent应用开发、知识库增强、数据库增强、知识图谱增强、自然语言处理、多模态等大模型应用开发内容 从0起步&#xff0c;扬帆起航。 大模型应用向开发路径&#xff1a;AI代理工作流大模型应用开发实用开源项目汇总大模…...

正则表达式和lambda表达式

正则表达式&#xff08;Regular Expressions&#xff09;和Lambda表达式虽然都包含“表达式”一词&#xff0c;但它们在编程中的作用和用法是完全不同的。让我们详细比较一下它们的定义、用途和应用场景&#xff1a; 正则表达式 定义&#xff1a;正则表达式是一种用于匹配文本…...

pyenv 之 python 多版本管理(win11)

1. 背景 常常会用到Python的多个版本&#xff0c;因此可以使用Pyenv来对Python版本进行管理。 2. win11下载 pyenv 在终端执行下载语句&#xff1a; pip install pyenv-win --target D:\software\pyenv 其中 D:\software\pyenv 为你想要下载到的文件目录&#xff0c;建议在 …...

nodemon运行ts文件

https://juejin.cn/post/7035637086451400734 nodemon经常用来调试js文件&#xff0c;大家都是知道的&#xff0c;但是用nodemon来调试ts文件&#xff0c;大家试过吗&#xff1f; 如果直接运行nodemon index.ts是会报错的。 ts 复制代码 //index.ts console.log(1) 需要全局…...

内网渗透瑞士军刀-impacket工具解析(二)

impacket工具解析之Kerberos认证协议 上一期我们介绍了impacket中ntlm协议的实现&#xff0c;在Windows认证中除了使用ntlm认证&#xff0c;还支持Kerberos认证协议&#xff0c;Kerberos认证也是Windows 活动目录中占比最高的认证方式。 什么是Kerberos协议&#xff1f; Kerb…...

huggingface 笔记:pipeline

1 介绍 pipeline() 是使用预训练模型进行推理的最简单和最快速的方式。可以针对不同模态的许多任务直接使用 pipeline() 2 举例&#xff1a;情感分析 2.1 创建pipeline实例 from transformers import pipelineclassifier pipeline("sentiment-analysis") #首先创…...

玩转Matlab-Simscape(初级)-01-从一个简单模型开始学习之旅

** 玩转Matlab-Simscape&#xff08;初级&#xff09;- 01 - 从一个简单模型开始学习之旅 ** 目录 玩转Matlab-Simscape&#xff08;初级&#xff09;- 01 - 从一个简单模型开始学习之旅 前言一、从模板开始建模二、建模一个简单的连杆2.1 建模2.2 生成子系统 总结 前言 在产…...

电脑录屏软件有哪些?这3款神器必须要知道

在当今现代社会&#xff0c;电脑录屏软件已经成为人们日常生活中不可或缺的一部分。无论是录制游戏精彩瞬间、制作教程、还是在线会议记录&#xff0c;一款好用的电脑录屏软件都能帮助我们更高效地完成任务。可是电脑录屏软件有哪些呢&#xff1f;接下来&#xff0c;我们将介绍…...

如何在华企盾DSC防泄密系统中设置文件自动加密?

在华企盾DSC系统中设置文件自动加密的过程&#xff0c;简单且用户友好&#xff0c;确保了企业数据的安全&#xff0c;同时不干扰日常工作流程。以下是设置文件自动加密的步骤&#xff1a; 系统安装与配置&#xff1a;确保华企盾DSC数据防泄密系统已经在企业的网络中正确安装和配…...

【DevOps】Dockerfile详解,做自己的docker镜像

学会使用DockerHub找自己想要的镜像以后&#xff0c;我们会很方便的使用一些公用镜像仓库的Docker镜像。但是开发和部署的过程中&#xff0c;能找到的镜像可能并不能满足我们需要&#xff0c;这样我们就需要自己制作Docker镜像。我们通过需要编写一个 Dockerfile&#xff0c;然…...

CSRF 攻击实验:Token 不存在绕过验证

前言 CSRF&#xff08;Cross-Site Request Forgery&#xff09;&#xff0c;也称为XSRF&#xff0c;是一种安全漏洞&#xff0c;攻击者通过欺骗用户在受信任网站上执行非自愿的操作&#xff0c;以实现未经授权的请求。 CSRF攻击利用了网站对用户提交的请求缺乏充分验证和防范…...

c#教程——索引器

前言&#xff1a; 索引器&#xff08;Indexer&#xff09;可以像操作数组一样来访问对象的元素。它允许你使用索引来访问对象中的元素&#xff0c;就像使用数组索引一样。在C#中&#xff0c;索引器的定义方式类似于属性&#xff0c;但具有类似数组的访问方式。 索引器&#x…...

麒麟服务器上执行可执行脚本报错:bash: ./xx: Permission denied(完整版)

前情提要 本来都好好的&#xff0c;我重启了服务器以后就开始报这个错了&#xff0c;而我的麒麟服务器目前是这个情况&#xff1a; 已经在服务器上配置好了 ssh 免密登录&#xff0c;在命令行里执行 ssh -o StrictHostKeyCheckingno -p 22 usernamexxx.xxx.xxx.xxx 可以正常登…...

触觉美学:移动端UI设计的视觉盛宴

...

前端起dev从110秒减少到7秒, 开发体验大幅提升

[webpack由浅入深]系列的内容 第一层: 了解一个小功能的完整流程. 看完可以满足好奇心和应付原理级别面试.第二层: 源码陪读, webpack源码比较灵活, 自己看容易陷入迷惑. 文章里会贴出关键流程的代码来辅助阅读源码. 如果你正在自己调试, 在这些方法上下断点会节约你宝贵的时间…...

Flink CDC 原理

简介 Flink CDC&#xff08;Change Data Capture&#xff09;是 Apache Flink 提供的一个变更数据捕获工具集。它可以监控数据库的变更&#xff0c;并将这些变更实时地以流的形式提供给下游系统&#xff0c;这些变更包括插入、更新和删除操作。 Flink CDC 适用于需要实时数据…...

Axure网上超市用户端APP原型 (O2O生鲜电商/买菜到家/数字零售/京东到家/抖音超市领域)

作品概况 页面数量&#xff1a;共 100 页 源文件格式&#xff1a;rp格式&#xff0c;兼容 Axure RP 9/10&#xff0c;非程序软件无源代码 适用领域&#xff1a;O2O生鲜电商、网上超市、买菜到家、数字零售 作品特色 本作品为网上超市用户消费端Axure交互原型&#xff0c;属于…...

外包公司中能学到技术的都是那些人?

在外包公司能够有效学习并提升技术的人&#xff0c;通常具备以下特点和行为模式&#xff1a; 自我驱动力强&#xff1a;这类人有强烈的学习欲望和提升自我的动机&#xff0c;不依赖公司安排的培训&#xff0c;而是主动寻找学习资源&#xff0c;如在线课程、技术书籍、开源项目等…...