当前位置: 首页 > 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;我们将介绍…...

Java - Mysql数据类型对应

Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...

SpringBoot+uniapp 的 Champion 俱乐部微信小程序设计与实现,论文初版实现

摘要 本论文旨在设计并实现基于 SpringBoot 和 uniapp 的 Champion 俱乐部微信小程序&#xff0c;以满足俱乐部线上活动推广、会员管理、社交互动等需求。通过 SpringBoot 搭建后端服务&#xff0c;提供稳定高效的数据处理与业务逻辑支持&#xff1b;利用 uniapp 实现跨平台前…...

Python爬虫(一):爬虫伪装

一、网站防爬机制概述 在当今互联网环境中&#xff0c;具有一定规模或盈利性质的网站几乎都实施了各种防爬措施。这些措施主要分为两大类&#xff1a; 身份验证机制&#xff1a;直接将未经授权的爬虫阻挡在外反爬技术体系&#xff1a;通过各种技术手段增加爬虫获取数据的难度…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

稳定币的深度剖析与展望

一、引言 在当今数字化浪潮席卷全球的时代&#xff0c;加密货币作为一种新兴的金融现象&#xff0c;正以前所未有的速度改变着我们对传统货币和金融体系的认知。然而&#xff0c;加密货币市场的高度波动性却成为了其广泛应用和普及的一大障碍。在这样的背景下&#xff0c;稳定…...

Java线上CPU飙高问题排查全指南

一、引言 在Java应用的线上运行环境中&#xff0c;CPU飙高是一个常见且棘手的性能问题。当系统出现CPU飙高时&#xff0c;通常会导致应用响应缓慢&#xff0c;甚至服务不可用&#xff0c;严重影响用户体验和业务运行。因此&#xff0c;掌握一套科学有效的CPU飙高问题排查方法&…...

iOS性能调优实战:借助克魔(KeyMob)与常用工具深度洞察App瓶颈

在日常iOS开发过程中&#xff0c;性能问题往往是最令人头疼的一类Bug。尤其是在App上线前的压测阶段或是处理用户反馈的高发期&#xff0c;开发者往往需要面对卡顿、崩溃、能耗异常、日志混乱等一系列问题。这些问题表面上看似偶发&#xff0c;但背后往往隐藏着系统资源调度不当…...

【笔记】WSL 中 Rust 安装与测试完整记录

#工作记录 WSL 中 Rust 安装与测试完整记录 1. 运行环境 系统&#xff1a;Ubuntu 24.04 LTS (WSL2)架构&#xff1a;x86_64 (GNU/Linux)Rust 版本&#xff1a;rustc 1.87.0 (2025-05-09)Cargo 版本&#xff1a;cargo 1.87.0 (2025-05-06) 2. 安装 Rust 2.1 使用 Rust 官方安…...

Kafka入门-生产者

生产者 生产者发送流程&#xff1a; 延迟时间为0ms时&#xff0c;也就意味着每当有数据就会直接发送 异步发送API 异步发送和同步发送的不同在于&#xff1a;异步发送不需要等待结果&#xff0c;同步发送必须等待结果才能进行下一步发送。 普通异步发送 首先导入所需的k…...