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

springboot农机电招平台源码和论文

随着农机电招行业的不断发展,农机电招在现实生活中的使用和普及,农机电招行业成为近年内出现的一个新行业,并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单,变高效。

农机电招平台采用了B/S结构,JAVA作为开发语言,数据库采用了B/S结构,Mysql数据库进行开发。该系统包括前台操作和后台管理两个部分,一方面,为用户提供首页,农机,系统公告,个人中心,后台管理等功能;另一方面,为管理员提供首页,个人中心,农机机主管理,使用者管理,农机类型管理,农机管理,农机预约管理,系统管理等功能。

【关键词】农机电招;JAVA;B/S结构

springboot农机电招平台源码和论文326

演示视频:

springboot农机电招平台源码和论文

Abstract

With the continuous development of the agricultural mechanical and electrical recruitment industry, the use and popularization of agricultural mechanical and electrical recruitment in real life, the agricultural mechanical and electrical recruitment industry has become a new industry that has emerged in recent years, and can become a behavior and choice widely recognized and accepted by the masses. The purpose of designing the agricultural mechanical and electrical recruitment platform is to make complex sales operations simple and efficient with the help of computers.

The agricultural mechanical and electrical recruitment platform adopts the B/S structure, JAVA as the development language, the database adopts the B/S structure, and the Mysql database is developed. The system includes two parts of front-end operation and background management, on the one hand, to provide users with the home page, agricultural machinery, system announcements, personal center, background management and other functions; on the other hand, to provide administrators with homepage, personal center, agricultural machinery master management, user management, agricultural machinery type management, agricultural machinery management, agricultural machinery appointment management, system management and other functions.

【Keywords】Agricultural mechanical and electrical moves; JAVA; B/S structure

package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.NongjijizhuEntity;
import com.entity.view.NongjijizhuView;import com.service.NongjijizhuService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;/*** 农机机主* 后端接口* @author * @email * @date 2022-04-18 15:38:13*/
@RestController
@RequestMapping("/nongjijizhu")
public class NongjijizhuController {@Autowiredprivate NongjijizhuService nongjijizhuService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {NongjijizhuEntity user = nongjijizhuService.selectOne(new EntityWrapper<NongjijizhuEntity>().eq("jizhuzhanghao", username));if(user==null || !user.getMima().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(), username,"nongjijizhu",  "农机机主" );return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody NongjijizhuEntity nongjijizhu){//ValidatorUtils.validateEntity(nongjijizhu);NongjijizhuEntity user = nongjijizhuService.selectOne(new EntityWrapper<NongjijizhuEntity>().eq("jizhuzhanghao", nongjijizhu.getJizhuzhanghao()));if(user!=null) {return R.error("注册用户已存在");}Long uId = new Date().getTime();nongjijizhu.setId(uId);nongjijizhuService.insert(nongjijizhu);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");NongjijizhuEntity user = nongjijizhuService.selectById(id);return R.ok().put("data", user);}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){NongjijizhuEntity user = nongjijizhuService.selectOne(new EntityWrapper<NongjijizhuEntity>().eq("jizhuzhanghao", username));if(user==null) {return R.error("账号不存在");}user.setMima("123456");nongjijizhuService.updateById(user);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,NongjijizhuEntity nongjijizhu,HttpServletRequest request){EntityWrapper<NongjijizhuEntity> ew = new EntityWrapper<NongjijizhuEntity>();PageUtils page = nongjijizhuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, nongjijizhu), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,NongjijizhuEntity nongjijizhu, HttpServletRequest request){EntityWrapper<NongjijizhuEntity> ew = new EntityWrapper<NongjijizhuEntity>();PageUtils page = nongjijizhuService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, nongjijizhu), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( NongjijizhuEntity nongjijizhu){EntityWrapper<NongjijizhuEntity> ew = new EntityWrapper<NongjijizhuEntity>();ew.allEq(MPUtil.allEQMapPre( nongjijizhu, "nongjijizhu")); return R.ok().put("data", nongjijizhuService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(NongjijizhuEntity nongjijizhu){EntityWrapper< NongjijizhuEntity> ew = new EntityWrapper< NongjijizhuEntity>();ew.allEq(MPUtil.allEQMapPre( nongjijizhu, "nongjijizhu")); NongjijizhuView nongjijizhuView =  nongjijizhuService.selectView(ew);return R.ok("查询农机机主成功").put("data", nongjijizhuView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){NongjijizhuEntity nongjijizhu = nongjijizhuService.selectById(id);return R.ok().put("data", nongjijizhu);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){NongjijizhuEntity nongjijizhu = nongjijizhuService.selectById(id);return R.ok().put("data", nongjijizhu);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody NongjijizhuEntity nongjijizhu, HttpServletRequest request){nongjijizhu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(nongjijizhu);NongjijizhuEntity user = nongjijizhuService.selectOne(new EntityWrapper<NongjijizhuEntity>().eq("jizhuzhanghao", nongjijizhu.getJizhuzhanghao()));if(user!=null) {return R.error("用户已存在");}nongjijizhu.setId(new Date().getTime());nongjijizhuService.insert(nongjijizhu);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody NongjijizhuEntity nongjijizhu, HttpServletRequest request){nongjijizhu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(nongjijizhu);NongjijizhuEntity user = nongjijizhuService.selectOne(new EntityWrapper<NongjijizhuEntity>().eq("jizhuzhanghao", nongjijizhu.getJizhuzhanghao()));if(user!=null) {return R.error("用户已存在");}nongjijizhu.setId(new Date().getTime());nongjijizhuService.insert(nongjijizhu);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody NongjijizhuEntity nongjijizhu, HttpServletRequest request){//ValidatorUtils.validateEntity(nongjijizhu);nongjijizhuService.updateById(nongjijizhu);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){nongjijizhuService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<NongjijizhuEntity> wrapper = new EntityWrapper<NongjijizhuEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = nongjijizhuService.selectCount(wrapper);return R.ok().put("count", count);}}
package com.controller;import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest;import com.utils.ValidatorUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.annotation.IgnoreAuth;import com.entity.ShiyongzheEntity;
import com.entity.view.ShiyongzheView;import com.service.ShiyongzheService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MD5Util;
import com.utils.MPUtil;
import com.utils.CommonUtil;
import java.io.IOException;/*** 使用者* 后端接口* @author * @email * @date 2022-04-18 15:38:13*/
@RestController
@RequestMapping("/shiyongzhe")
public class ShiyongzheController {@Autowiredprivate ShiyongzheService shiyongzheService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {ShiyongzheEntity user = shiyongzheService.selectOne(new EntityWrapper<ShiyongzheEntity>().eq("yonghuming", username));if(user==null || !user.getMima().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(), username,"shiyongzhe",  "使用者" );return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody ShiyongzheEntity shiyongzhe){//ValidatorUtils.validateEntity(shiyongzhe);ShiyongzheEntity user = shiyongzheService.selectOne(new EntityWrapper<ShiyongzheEntity>().eq("yonghuming", shiyongzhe.getYonghuming()));if(user!=null) {return R.error("注册用户已存在");}Long uId = new Date().getTime();shiyongzhe.setId(uId);shiyongzheService.insert(shiyongzhe);return R.ok();}/*** 退出*/@RequestMapping("/logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");ShiyongzheEntity user = shiyongzheService.selectById(id);return R.ok().put("data", user);}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){ShiyongzheEntity user = shiyongzheService.selectOne(new EntityWrapper<ShiyongzheEntity>().eq("yonghuming", username));if(user==null) {return R.error("账号不存在");}user.setMima("123456");shiyongzheService.updateById(user);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,ShiyongzheEntity shiyongzhe,HttpServletRequest request){EntityWrapper<ShiyongzheEntity> ew = new EntityWrapper<ShiyongzheEntity>();PageUtils page = shiyongzheService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shiyongzhe), params), params));return R.ok().put("data", page);}/*** 前端列表*/@IgnoreAuth@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,ShiyongzheEntity shiyongzhe, HttpServletRequest request){EntityWrapper<ShiyongzheEntity> ew = new EntityWrapper<ShiyongzheEntity>();PageUtils page = shiyongzheService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, shiyongzhe), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( ShiyongzheEntity shiyongzhe){EntityWrapper<ShiyongzheEntity> ew = new EntityWrapper<ShiyongzheEntity>();ew.allEq(MPUtil.allEQMapPre( shiyongzhe, "shiyongzhe")); return R.ok().put("data", shiyongzheService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(ShiyongzheEntity shiyongzhe){EntityWrapper< ShiyongzheEntity> ew = new EntityWrapper< ShiyongzheEntity>();ew.allEq(MPUtil.allEQMapPre( shiyongzhe, "shiyongzhe")); ShiyongzheView shiyongzheView =  shiyongzheService.selectView(ew);return R.ok("查询使用者成功").put("data", shiyongzheView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") Long id){ShiyongzheEntity shiyongzhe = shiyongzheService.selectById(id);return R.ok().put("data", shiyongzhe);}/*** 前端详情*/@IgnoreAuth@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") Long id){ShiyongzheEntity shiyongzhe = shiyongzheService.selectById(id);return R.ok().put("data", shiyongzhe);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody ShiyongzheEntity shiyongzhe, HttpServletRequest request){shiyongzhe.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(shiyongzhe);ShiyongzheEntity user = shiyongzheService.selectOne(new EntityWrapper<ShiyongzheEntity>().eq("yonghuming", shiyongzhe.getYonghuming()));if(user!=null) {return R.error("用户已存在");}shiyongzhe.setId(new Date().getTime());shiyongzheService.insert(shiyongzhe);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody ShiyongzheEntity shiyongzhe, HttpServletRequest request){shiyongzhe.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(shiyongzhe);ShiyongzheEntity user = shiyongzheService.selectOne(new EntityWrapper<ShiyongzheEntity>().eq("yonghuming", shiyongzhe.getYonghuming()));if(user!=null) {return R.error("用户已存在");}shiyongzhe.setId(new Date().getTime());shiyongzheService.insert(shiyongzhe);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody ShiyongzheEntity shiyongzhe, HttpServletRequest request){//ValidatorUtils.validateEntity(shiyongzhe);shiyongzheService.updateById(shiyongzhe);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){shiyongzheService.deleteBatchIds(Arrays.asList(ids));return R.ok();}/*** 提醒接口*/@RequestMapping("/remind/{columnName}/{type}")public R remindCount(@PathVariable("columnName") String columnName, HttpServletRequest request, @PathVariable("type") String type,@RequestParam Map<String, Object> map) {map.put("column", columnName);map.put("type", type);if(type.equals("2")) {SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");Calendar c = Calendar.getInstance();Date remindStartDate = null;Date remindEndDate = null;if(map.get("remindstart")!=null) {Integer remindStart = Integer.parseInt(map.get("remindstart").toString());c.setTime(new Date()); c.add(Calendar.DAY_OF_MONTH,remindStart);remindStartDate = c.getTime();map.put("remindstart", sdf.format(remindStartDate));}if(map.get("remindend")!=null) {Integer remindEnd = Integer.parseInt(map.get("remindend").toString());c.setTime(new Date());c.add(Calendar.DAY_OF_MONTH,remindEnd);remindEndDate = c.getTime();map.put("remindend", sdf.format(remindEndDate));}}Wrapper<ShiyongzheEntity> wrapper = new EntityWrapper<ShiyongzheEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = shiyongzheService.selectCount(wrapper);return R.ok().put("count", count);}}

相关文章:

springboot农机电招平台源码和论文

随着农机电招行业的不断发展&#xff0c;农机电招在现实生活中的使用和普及&#xff0c;农机电招行业成为近年内出现的一个新行业&#xff0c;并且能够成为大群众广为认可和接受的行为和选择。设计农机电招平台的目的就是借助计算机让复杂的销售操作变简单&#xff0c;变高效。…...

TensorFlow 深度学习 开发环境搭建 全教程

PyTorch 深度学习 开发环境搭建 全教程 TensorFlow 深度学习 开发环境搭建 全教程 1、指定清华源命令 -i https://pypi.tuna.tsinghua.edu.cn/simple2、conda安装 这是AI开发环境的全家桶&#xff0c;官网下载链接Anaconda | Start Coding Immediately 尽量不要选择太新版本…...

Qt —— QCharts之曲线示波器(附源码)

示例效果 介绍 Qt5.7 版本后 Qt Charts 的发布。Qt Charts可以创建时尚的、交互式的、以数据为中心的用户界面。Qt Charts使用Qt Charts来简化集成。图表组件可以用作或对象或QML类型。 该类管理不同类型的系列和其他图表相关对象(如图例和轴)的图形表示形式。是一个可以在 .…...

【秒剪】如何更换视频画幅比例以及画面背景?

Step1&#xff1a;点击上方显示的画幅比例 Step2&#xff1a;在下方选择合适的视频画幅或更换画面背景 Step3&#xff1a;点击上方【填充方式】 Step4&#xff1a;选择合适的填充方式即可 Step5&#xff1a;点击这里即可自定义视频背景...

HarmonyOS鸿蒙学习笔记(23)监听Wifi状态变化

监听Wifi状态变化 前言创建接收状态变化的Bean对象创建订阅者和订阅事件参考资料&#xff1a; 前言 本篇博文通过动态订阅公共事件来说明怎么使用HarmonyOS监听Wifi状态的变化。关于动态订阅公共事件的概念&#xff0c;官网有详细说明&#xff0c;再次就不在赘述。博文相关项目…...

mac 安装配置oh-my-zsh

1. 安装brew /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 按照步骤安装即可 安装完成查看版本 brew -v 2. 安装zsh brew install zsh 查看版本 zsh --version 3. 安装oh-my-zsh github官网链…...

[pytorch入门] 2. tensorboard

tensorboard简介 TensorBoard 是一组用于数据可视化的工具。它包含在流行的开源机器学习库 Tensorflow 中.但是也可以独立安装&#xff0c;服务Pytorch等其他的框架 可以常常用来观察训练过程中每一阶段如何输出的 安装pip install tensorboard启动tensorboard --logdir<d…...

基于卡尔曼滤波的平面轨迹优化

文章目录 概要卡尔曼滤波代码主函数代码CMakeLists.txt概要 在进行目标跟踪时,算法实时测量得到的目标平面位置,是具有误差的,连续观测,所形成的轨迹如下图所示,需要对其进行噪声滤除。这篇博客将使用卡尔曼滤波,对轨迹进行优化。 优化的结果为黄色线。 卡尔曼滤波代码…...

GBASE南大通用分享如何更新嵌套的集合

如果您想要更新集合的集合&#xff0c;则必须声明游标来访问外层的集合&#xff0c;然后声明嵌套的游标来 访问内层的集合。 例如&#xff0c;假设 manager 表有一附加的列 scores&#xff0c;它包含一其元素类型为整数的 MULTISET 的 LIST&#xff0c;如下图所示。 更新集合…...

Maya------插入循环边

11.maya 常用建模命令1.插入循环边 多切割_哔哩哔哩_bilibili 与边相对距离 逐渐变化...

Nginx_入门

系列文章目录 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 Nginx_入门 提示&#xff1a;写完文章后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 系列文章目录前言一、Nginx概述二、Nginx的应用…...

坚持刷题 | 平衡二叉树

文章目录 题目考察点代码实现实现总结对实现进一步改进扩展提问 坚持刷题&#xff0c;老年痴呆追不上我&#xff0c;今天继续二叉树&#xff1a;平衡二叉树 题目 110.平衡二叉树 考察点 递归能力&#xff1a; 能否使用递归来解决问题。树的基本操作&#xff1a;能否正确地访…...

江大白 | 万字长文图解Numpy教程,看这一篇就够了!

本文来源公众号“江大白”&#xff0c;仅用于学术分享&#xff0c;侵权删&#xff0c;干货满满&#xff0c;有超级详细的图解。 原文链接&#xff1a;万字长文图解Numpy教程&#xff0c;看这一篇就够了&#xff01; (qq.com) 以下文章来源于博客&#xff1a;Medium 作者&…...

数据结构——静态链表

1.定义&#xff1a; &#xff08;1&#xff09;单链表&#xff1a;各个结点散落在内存中的各个角落&#xff0c;每个结点有指向下一个节点的指针(下一个结点在内存 中的地址); &#xff08;2&#xff09;静态链表&#xff1a;用数组的方式来描述线性表的链式存储结构: 分配一…...

C++ 知识列表【图】

举例C的设计模式和智能指针 当谈到 C 的设计模式时&#xff0c;以下是一些常见的设计模式&#xff1a; 工厂模式&#xff08;Factory Pattern&#xff09;&#xff1a;用于创建对象的模式&#xff0c;隐藏了对象的具体实现细节&#xff0c;只暴露一个公共接口来创建对象。 单例…...

系统登录的时候的密码如何做到以加密的形式进行登录【java.security包下的api】工具类。

/** description: 将普通的publicKey转化得到一个RSAPublicKey* author: zkw* date: 2024/1/24 16:17* param: publicKey 普通的publicKey* return: RSAPublicKey 得到一个新的RSAPublicKey**/public static RSAPublicKey getPublicKey(String publicKey) throws NoSuchAlgorit…...

java基础学习: 什么是泛型的类型擦除

文章目录 一、什么是泛型2、泛型编译前和编译后对比3、泛型的优点&#xff08;1&#xff09;提高了代码的复用性和可读性&#xff08;2&#xff09;提高了代码的安全性 二、泛型的定义1、泛型类2、泛型接口3、泛型方法 三、泛型通配符1、&#xff1f;和T有什么区别2、通配符的分…...

Vue+OpenLayers7入门到实战:在地图上添加缩放控件、比例尺控件和鼠标经纬度位置显示控件

返回《Vue+OpenLayers7》专栏目录:Vue+OpenLayers7 前言 本章主要介绍如何使用OpenLayers7在地图上添加地图缩放控件,比例尺显示控件和鼠标经纬度位置展示控件这三个Control控件。 二、依赖和使用 "ol": "7.5.2"使用npm安装依赖npm install ol@7.5.…...

极简生活|可以慢慢变富的8个习惯

哈喽&#xff0c;大家好啊&#xff0c;我是雷工&#xff01; 巴菲特巴老爷子曾经多次指出&#xff1a; 大多数投资者的问题就在于不愿意慢慢变富。 可是大多数人都急于一夜暴富&#xff0c;于是乎那么多的追涨杀跌&#xff0c;不断上演&#xff0c;越急功近利反而越损失惨重。 …...

MySQL基础(一)

学习数据库的目的&#xff1a; 实现数据持久化到本地。使用完整的管理系统统一管理&#xff0c;可以实现结构化查询&#xff0c;方便管理。 一、数据库概述 数据库&#xff08;DataBase&#xff09; 为了方便数据的存储和管理&#xff0c;它将数据按照特定的 规则存储在磁盘…...

DeepSeek 赋能智慧能源:微电网优化调度的智能革新路径

目录 一、智慧能源微电网优化调度概述1.1 智慧能源微电网概念1.2 优化调度的重要性1.3 目前面临的挑战 二、DeepSeek 技术探秘2.1 DeepSeek 技术原理2.2 DeepSeek 独特优势2.3 DeepSeek 在 AI 领域地位 三、DeepSeek 在微电网优化调度中的应用剖析3.1 数据处理与分析3.2 预测与…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现录音机应用

1. 项目配置与权限设置 1.1 配置module.json5 {"module": {"requestPermissions": [{"name": "ohos.permission.MICROPHONE","reason": "录音需要麦克风权限"},{"name": "ohos.permission.WRITE…...

使用 SymPy 进行向量和矩阵的高级操作

在科学计算和工程领域&#xff0c;向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能&#xff0c;能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作&#xff0c;并通过具体…...

基于TurtleBot3在Gazebo地图实现机器人远程控制

1. TurtleBot3环境配置 # 下载TurtleBot3核心包 mkdir -p ~/catkin_ws/src cd ~/catkin_ws/src git clone -b noetic-devel https://github.com/ROBOTIS-GIT/turtlebot3.git git clone -b noetic https://github.com/ROBOTIS-GIT/turtlebot3_msgs.git git clone -b noetic-dev…...

VM虚拟机网络配置(ubuntu24桥接模式):配置静态IP

编辑-虚拟网络编辑器-更改设置 选择桥接模式&#xff0c;然后找到相应的网卡&#xff08;可以查看自己本机的网络连接&#xff09; windows连接的网络点击查看属性 编辑虚拟机设置更改网络配置&#xff0c;选择刚才配置的桥接模式 静态ip设置&#xff1a; 我用的ubuntu24桌…...

排序算法总结(C++)

目录 一、稳定性二、排序算法选择、冒泡、插入排序归并排序随机快速排序堆排序基数排序计数排序 三、总结 一、稳定性 排序算法的稳定性是指&#xff1a;同样大小的样本 **&#xff08;同样大小的数据&#xff09;**在排序之后不会改变原始的相对次序。 稳定性对基础类型对象…...

DingDing机器人群消息推送

文章目录 1 新建机器人2 API文档说明3 代码编写 1 新建机器人 点击群设置 下滑到群管理的机器人&#xff0c;点击进入 添加机器人 选择自定义Webhook服务 点击添加 设置安全设置&#xff0c;详见说明文档 成功后&#xff0c;记录Webhook 2 API文档说明 点击设置说明 查看自…...

android13 app的触摸问题定位分析流程

一、知识点 一般来说,触摸问题都是app层面出问题,我们可以在ViewRootImpl.java添加log的方式定位;如果是touchableRegion的计算问题,就会相对比较麻烦了,需要通过adb shell dumpsys input > input.log指令,且通过打印堆栈的方式,逐步定位问题,并找到修改方案。 问题…...