大数据开发基于Hadoop+springboot平台的岗位推荐系统

文章目录

  • 前言
  • 项目介绍
  • 技术介绍
  • 功能介绍
  • 核心代码
    • 数据库参考
  • 系统效果图
  • 文章目录


前言

文章底部名片,获取项目的完整演示视频,免费解答技术疑问

项目介绍

  随着网络科学技术不断的发展和普及化,用户在寻找适合自己的信息管理系统时面临着越来越大的挑战。因此,本文介绍了一套平台的岗位推荐系统,在技术实现方面,本系统采用JAVA、VUE、TOMCAT、HADOOP以及MySQL数据库编程,使用Spring boot框架实现前后端的连接和交互功能。用户需要先注册账号,然后才能登录系统并使用功能。本文还对平台的岗位推荐系统的研究现状和意义进行了详细介绍。随着大数据和人工智能技术的不断发展,大数据分析系统正逐渐成为网络应用中越来越重要的部分。本文提出的平台的岗位推荐系统将为用户提供更加高效和准确的信息智能化服务,满足用户的需求。总之,本文旨在介绍一套具有实际应用意义的平台的岗位推荐系统,针对传统管理方式进行了重要改进。通过对系统的实现和应用,本文展示了高效、准确的平台的岗位推荐系统应该具备的特点和功能,为平台的岗位推荐系统的研究和应用提供了有益的参考。

技术介绍

开发语言:Java
框架:springboot
JDK版本:JDK1.8
服务器:tomcat7
数据库:mysql
数据库工具:Navicat11
开发软件:eclipse/myeclipse/idea
Maven包:Maven

功能介绍

本文介绍了一个基于 Hadoop 平台的岗位推荐系统,该系统在B/S体系结构下,并通过MySQL数据库和Spring boot框架实现数据存储和前端展示。用户通过浏览器与网站进行交互。整个系统具有很好的可扩展性和安全性,为用户提供了更好的服务。系统的总体架构设计图如图4-1所示。
在这里插入图片描述

图 4-1系统架构图

核心代码

# 数据爬取文件import scrapy
import pymysql
import pymssql
from ..items import LvyoujingdianItem
import time
import re
import random
import platform
import json
import os
import urllib
from urllib.parse import urlparse
import requests
import emoji# 旅游景点
class LvyoujingdianSpider(scrapy.Spider):name = 'lvyoujingdianSpider'spiderUrl = 'https://you.ctrip.com/sight/lanzhou231/s0-p{}.html'start_urls = spiderUrl.split(";")protocol = ''hostname = ''def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)def start_requests(self):plat = platform.system().lower()if plat == 'linux' or plat == 'windows':connect = self.db_connect()cursor = connect.cursor()if self.table_exists(cursor, '5295r_lvyoujingdian') == 1:cursor.close()connect.close()self.temp_data()returnpageNum = 1 + 1for url in self.start_urls:if '{}' in url:for page in range(1, pageNum):next_link = url.format(page)yield scrapy.Request(url=next_link,callback=self.parse)else:yield scrapy.Request(url=url,callback=self.parse)# 列表解析def parse(self, response):_url = urlparse(self.spiderUrl)self.protocol = _url.schemeself.hostname = _url.netlocplat = platform.system().lower()if plat == 'windows_bak':passelif plat == 'linux' or plat == 'windows':connect = self.db_connect()cursor = connect.cursor()if self.table_exists(cursor, '5295r_lvyoujingdian') == 1:cursor.close()connect.close()self.temp_data()returnlist = response.css('div.list_wide_mod2 div.list_mod2')for item in list:fields = LvyoujingdianItem()if '(.*?)' in '''dt a::attr(href)''':fields["laiyuan"] = re.findall(r'''dt a::attr(href)''', response.text, re.DOTALL)[0].strip()else:fields["laiyuan"] = self.remove_html(item.css('dt a::attr(href)').extract_first())if '(.*?)' in '''div.leftimg a img::attr(src)''':fields["fengmian"] = re.findall(r'''div.leftimg a img::attr(src)''', response.text, re.DOTALL)[0].strip()else:fields["fengmian"] = self.remove_html(item.css('div.leftimg a img::attr(src)').extract_first())if '(.*?)' in '''div.rdetailbox dl dt a::text''':fields["biaoti"] = re.findall(r'''div.rdetailbox dl dt a::text''', response.text, re.DOTALL)[0].strip()else:fields["biaoti"] = self.remove_html(item.css('div.rdetailbox dl dt a::text').extract_first())if '(.*?)' in '''b.hot_score_number::text''':fields["redu"] = re.findall(r'''b.hot_score_number::text''', response.text, re.DOTALL)[0].strip()else:fields["redu"] = self.remove_html(item.css('b.hot_score_number::text').extract_first())if '(.*?)' in '''dd.ellipsis::text''':fields["dizhi"] = re.findall(r'''dd.ellipsis::text''', response.text, re.DOTALL)[0].strip()else:fields["dizhi"] = self.remove_html(item.css('dd.ellipsis::text').extract_first())if '(.*?)' in '''a.score strong::text''':fields["pingfen"] = re.findall(r'''a.score strong::text''', response.text, re.DOTALL)[0].strip()else:fields["pingfen"] = self.remove_html(item.css('a.score strong::text').extract_first())if '(.*?)' in '''a.recomment::text''':fields["pinglun"] = re.findall(r'''a.recomment::text''', response.text, re.DOTALL)[0].strip()else:fields["pinglun"] = self.remove_html(item.css('a.recomment::text').extract_first())if '(.*?)' in '''p[class="bottomcomment ellipsis open_popupbox_a"]''':fields["dianping"] = re.findall(r'''p[class="bottomcomment ellipsis open_popupbox_a"]''', response.text, re.DOTALL)[0].strip()else:fields["dianping"] = self.remove_html(item.css('p[class="bottomcomment ellipsis open_popupbox_a"]').extract_first())detailUrlRule = item.css('dt a::attr(href)').extract_first()if self.protocol in detailUrlRule:passelif detailUrlRule.startswith('//'):detailUrlRule = self.protocol + ':' + detailUrlRuleelse:detailUrlRule = self.protocol + '://' + self.hostname + detailUrlRulefields["laiyuan"] = detailUrlRuleyield scrapy.Request(url=detailUrlRule, meta={'fields': fields},  callback=self.detail_parse, dont_filter=True)# 详情解析def detail_parse(self, response):fields = response.meta['fields']try:if '(.*?)' in '''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''':fields["gfdh"] = re.findall(r'''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''', response.text, re.S)[0].strip()else:if 'gfdh' != 'xiangqing' and 'gfdh' != 'detail' and 'gfdh' != 'pinglun' and 'gfdh' != 'zuofa':fields["gfdh"] = self.remove_html(response.css('''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''').extract_first())else:fields["gfdh"] = emoji.demojize(response.css('''<div class="baseInfoItem"><p class="baseInfoTitle">官方电话</p><p class="baseInfoText">(.*?)</p></div>''').extract_first())except:passtry:if '(.*?)' in '''div[class="detailModule normalModule"]''':fields["detail"] = re.findall(r'''div[class="detailModule normalModule"]''', response.text, re.S)[0].strip()else:if 'detail' != 'xiangqing' and 'detail' != 'detail' and 'detail' != 'pinglun' and 'detail' != 'zuofa':fields["detail"] = self.remove_html(response.css('''div[class="detailModule normalModule"]''').extract_first())else:fields["detail"] = emoji.demojize(response.css('''div[class="detailModule normalModule"]''').extract_first())except:passreturn fields# 去除多余html标签def remove_html(self, html):if html == None:return ''pattern = re.compile(r'<[^>]+>', re.S)return pattern.sub('', html).strip()# 数据库连接def db_connect(self):type = self.settings.get('TYPE', 'mysql')host = self.settings.get('HOST', 'localhost')port = int(self.settings.get('PORT', 3306))user = self.settings.get('USER', 'root')password = self.settings.get('PASSWORD', '123456')try:database = self.databaseNameexcept:database = self.settings.get('DATABASE', '')if type == 'mysql':connect = pymysql.connect(host=host, port=port, db=database, user=user, passwd=password, charset='utf8')else:connect = pymssql.connect(host=host, user=user, password=password, database=database)return connect# 断表是否存在def table_exists(self, cursor, table_name):cursor.execute("show tables;")tables = [cursor.fetchall()]table_list = re.findall('(\'.*?\')',str(tables))table_list = [re.sub("'",'',each) for each in table_list]if table_name in table_list:return 1else:return 0# 数据缓存源def temp_data(self):connect = self.db_connect()cursor = connect.cursor()sql = '''insert into `lvyoujingdian`(id,laiyuan,fengmian,biaoti,redu,dizhi,pingfen,pinglun,dianping,gfdh,detail)selectid,laiyuan,fengmian,biaoti,redu,dizhi,pingfen,pinglun,dianping,gfdh,detailfrom `5295r_lvyoujingdian`where(not exists (selectid,laiyuan,fengmian,biaoti,redu,dizhi,pingfen,pinglun,dianping,gfdh,detailfrom `lvyoujingdian` where`lvyoujingdian`.id=`5295r_lvyoujingdian`.id))limit {0}'''.format(random.randint(10,15))cursor.execute(sql)connect.commit()connect.close()

数据库参考


--
-- Table structure for table `chat`
--DROP TABLE IF EXISTS `chat`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `chat` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`userid` bigint(20) NOT NULL COMMENT '用户id',`adminid` bigint(20) DEFAULT NULL COMMENT '管理员id',`ask` longtext COMMENT '提问',`reply` longtext COMMENT '回复',`isreply` int(11) DEFAULT NULL COMMENT '是否回复',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=69 DEFAULT CHARSET=utf8 COMMENT='在线咨询';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `chat`
--LOCK TABLES `chat` WRITE;
/*!40000 ALTER TABLE `chat` DISABLE KEYS */;
INSERT INTO `chat` VALUES (61,'2024-03-30 04:52:45',1,1,'提问1','回复1',1),(62,'2024-03-30 04:52:45',2,2,'提问2','回复2',2),(63,'2024-03-30 04:52:45',3,3,'提问3','回复3',3),(64,'2024-03-30 04:52:45',4,4,'提问4','回复4',4),(65,'2024-03-30 04:52:45',5,5,'提问5','回复5',5),(66,'2024-03-30 04:52:45',6,6,'提问6','回复6',6),(67,'2024-03-30 04:52:45',7,7,'提问7','回复7',7),(68,'2024-03-30 04:52:45',8,8,'提问8','回复8',8);
/*!40000 ALTER TABLE `chat` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `config`
--DROP TABLE IF EXISTS `config`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `config` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`name` varchar(100) NOT NULL COMMENT '配置参数名称',`value` varchar(100) DEFAULT NULL COMMENT '配置参数值',`url` varchar(500) DEFAULT NULL COMMENT 'url',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=4 DEFAULT CHARSET=utf8 COMMENT='配置文件';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `config`
--LOCK TABLES `config` WRITE;
/*!40000 ALTER TABLE `config` DISABLE KEYS */;
INSERT INTO `config` VALUES (1,'picture1','upload/picture1.jpg',NULL),(2,'picture2','upload/picture2.jpg',NULL),(3,'picture3','upload/picture3.jpg',NULL);
/*!40000 ALTER TABLE `config` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `discussqiyezhaopin`
--DROP TABLE IF EXISTS `discussqiyezhaopin`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `discussqiyezhaopin` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`refid` bigint(20) NOT NULL COMMENT '关联表id',`userid` bigint(20) NOT NULL COMMENT '用户id',`avatarurl` longtext COMMENT '头像',`nickname` varchar(200) DEFAULT NULL COMMENT '用户名',`content` longtext NOT NULL COMMENT '评论内容',`reply` longtext COMMENT '回复内容',PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='企业招聘评论表';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `discussqiyezhaopin`
--LOCK TABLES `discussqiyezhaopin` WRITE;
/*!40000 ALTER TABLE `discussqiyezhaopin` DISABLE KEYS */;
/*!40000 ALTER TABLE `discussqiyezhaopin` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `forum`
--DROP TABLE IF EXISTS `forum`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `forum` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`title` varchar(200) DEFAULT NULL COMMENT '帖子标题',`content` longtext NOT NULL COMMENT '帖子内容',`parentid` bigint(20) DEFAULT NULL COMMENT '父节点id',`userid` bigint(20) NOT NULL COMMENT '用户id',`username` varchar(200) DEFAULT NULL COMMENT '用户名',`avatarurl` longtext COMMENT '头像',`isdone` varchar(200) DEFAULT NULL COMMENT '状态',`istop` int(11) DEFAULT '0' COMMENT '是否置顶',`toptime` datetime DEFAULT NULL COMMENT '置顶时间',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=79 DEFAULT CHARSET=utf8 COMMENT='论坛交流';
/*!40101 SET character_set_client = @saved_cs_client */;--
-- Dumping data for table `forum`
--LOCK TABLES `forum` WRITE;
/*!40000 ALTER TABLE `forum` DISABLE KEYS */;
INSERT INTO `forum` VALUES (71,'2024-03-30 04:52:45','帖子标题1','帖子内容1',0,1,'用户名1','upload/forum_avatarurl1.jpg,upload/forum_avatarurl2.jpg,upload/forum_avatarurl3.jpg','开放',0,'2024-03-30 12:52:45'),(72,'2024-03-30 04:52:45','帖子标题2','帖子内容2',0,2,'用户名2','upload/forum_avatarurl2.jpg,upload/forum_avatarurl3.jpg,upload/forum_avatarurl4.jpg','开放',0,'2024-03-30 12:52:45'),(73,'2024-03-30 04:52:45','帖子标题3','帖子内容3',0,3,'用户名3','upload/forum_avatarurl3.jpg,upload/forum_avatarurl4.jpg,upload/forum_avatarurl5.jpg','开放',0,'2024-03-30 12:52:45'),(74,'2024-03-30 04:52:45','帖子标题4','帖子内容4',0,4,'用户名4','upload/forum_avatarurl4.jpg,upload/forum_avatarurl5.jpg,upload/forum_avatarurl6.jpg','开放',0,'2024-03-30 12:52:45'),(75,'2024-03-30 04:52:45','帖子标题5','帖子内容5',0,5,'用户名5','upload/forum_avatarurl5.jpg,upload/forum_avatarurl6.jpg,upload/forum_avatarurl7.jpg','开放',0,'2024-03-30 12:52:45'),(76,'2024-03-30 04:52:45','帖子标题6','帖子内容6',0,6,'用户名6','upload/forum_avatarurl6.jpg,upload/forum_avatarurl7.jpg,upload/forum_avatarurl8.jpg','开放',0,'2024-03-30 12:52:45'),(77,'2024-03-30 04:52:45','帖子标题7','帖子内容7',0,7,'用户名7','upload/forum_avatarurl7.jpg,upload/forum_avatarurl8.jpg,upload/forum_avatarurl9.jpg','开放',0,'2024-03-30 12:52:45'),(78,'2024-03-30 04:52:45','帖子标题8','帖子内容8',0,8,'用户名8','upload/forum_avatarurl8.jpg,upload/forum_avatarurl9.jpg,upload/forum_avatarurl10.jpg','开放',0,'2024-03-30 12:52:45');
/*!40000 ALTER TABLE `forum` ENABLE KEYS */;
UNLOCK TABLES;--
-- Table structure for table `gangweifenlei`
--DROP TABLE IF EXISTS `gangweifenlei`;
/*!40101 SET @saved_cs_client     = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `gangweifenlei` (`id` bigint(20) NOT NULL AUTO_INCREMENT COMMENT '主键',`addtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',`gangweifenlei` varchar(200) DEFAULT NULL COMMENT '岗位分类',PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=29 DEFAULT CHARSET=utf8 COMMENT='岗位分类';
/*!40101 SET character_set_client = @saved_cs_client */;

系统效果图

请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述
请添加图片描述

文章目录

目录
第1章 序言 1
1.1选题背景及意义 1
1.2国内外研究状况 2
1.3课题研究的主要内容 2
1.4文章的内容结构安排 3
第2章 相关理论技术介绍 4
2.1 Spring boot框架 5
2.2 Java语言简介 5
2.3爬虫技术简介 6
2.4VUE简介 7
2.5Hadoop简介 7
第3章 系统需求分析 9
3.1 可行性分析 10
3.1.1网站技术可行性分析 12
3.1.2网络经济可行性分析 14
3.1.3网络运行可行性分析 16
3.2 非功能性需求分析 18
3.3系统用例图 20
3.4 系统流程图 21
第4章 系统设计 22
4.1系统总体架构 25
4.2岗位爬虫的模型设计 25
4.3数据库设计 25
4.3.1 数据库E-R图设计 27
4.3.2 数据库表设计 29
第5章 系统实现 30
5.1注册、登录模块 31
5.2用户后台功能模块实现 32
5.3管理员后端模块实现 32
5.4岗位推荐系统看板展示 33
第6章 系统测试 35
6.1测试方法 36
6.2测试用例 37
结束语 38
参考文献 39
致谢 40

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

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

相关文章

成功解决pycharm软件中按住Ctrl+点击指定函数却不能跳转到对应库中的源代码

成功解决pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 目录 解决问题 解决方法 解决问题 在pycharm软件中按住Ctrl点击指定函数却不能跳转到对应库中的源代码 解决方法

探索秘境:如何使用智能体插件打造专属的小众旅游助手『小众旅游探险家』

文章目录 摘要引言智能体介绍和亮点展示介绍亮点展示 已发布智能体运行效果智能体创意想法创意想法创意实现路径拆解 如何制作智能体可能会遇到的几个问题快速调优指南总结未来展望 摘要 本文将详细介绍如何使用智能体平台开发一款名为“小众旅游探险家”的旅游智能体。通过这…

个人健康系统|个人健康数据管理系统|基于小程序+java的个人健康数据管理系统设计与实现(源码+数据库+文档)

个人健康数据管理系统 目录 基于小程序java的个人健康数据管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设选题推荐 八、源码获取&#xff1a; 博主介绍&#xff1a;✌️大厂码农|毕设布道师…

ArcGIS Pro SDK (十七)宗地结构

ArcGIS Pro SDK (十七)宗地结构 环境:Visual Studio 2022 + .NET6 + ArcGIS Pro SDK 3.0 宗地结构 1 获取活动记录 string errorMessage = await QueuedTask.Run(() => {

高可用之限流-07-token bucket 令牌桶算法

限流系列 开源组件 rate-limit: 限流 高可用之限流-01-入门介绍 高可用之限流-02-如何设计限流框架 高可用之限流-03-Semaphore 信号量做限流 高可用之限流-04-fixed window 固定窗口 高可用之限流-05-slide window 滑动窗口 高可用之限流-06-slide window 滑动窗口 sen…

重构案例:将纯HTML/JS项目迁移到Webpack

我们已经了解了许多关于 Webpack 的知识&#xff0c;但要完全熟练掌握它并非易事。一个很好的学习方法是通过实际项目练习。当我们对 Webpack 的配置有了足够的理解后&#xff0c;就可以尝试重构一些项目。本次我选择了一个纯HTML/JS的PC项目进行重构&#xff0c;项目位于 GitH…

web3学习-区块链基础知识

1.1 区块链技术简史 block chain 点对点的分布式交易系统 比特币协议并不是图灵完备的。 以太坊协议加入了智能合约&#xff0c;智能合约是以太坊协议与比特币协议的最大区别&#xff08;图灵完备&#xff09; 1.2、区块链设计哲学 去中心化 由于没有中心化的数据库作为…

记录一个容易混淆的 Spring Boot 项目配置文件问题

记录一个容易混淆的 Spring Boot 项目配置文件问题 去年&#xff0c;我遇到了这样一个问题&#xff1a; 在这个例子中&#xff0c;由于密码 password 以 0 开头&#xff0c;当它被 Spring Boot 的 bean 读取时&#xff0c;前导的 0 被自动去掉了。这导致程序无法正确读取密码。…

网盘直链下载神器NDM

工具介绍 ​Neat Download Manager分享一款网盘不限速神器,安装步骤稍微有一点繁琐,但实际体验下载速度飞快,个人实际体验还是非常不错的 NDM是一款免费且强大的下载工具。可以帮助你下载各种文件&#xff0c;还能够在多任务下载中保持出色的速度及其稳定性 通过网盘分享的文…

【MySQL核心面试题】MySQL 核心 - Explain 执行计划详解!

欢迎关注公众号 【11来了】&#xff08;文章末尾即可扫码关注&#xff09; &#xff0c;持续 中间件源码、系统设计、面试进阶相关内容 在我后台回复 「资料」 可领取 编程高频电子书&#xff01; 在我后台回复「面试」可领取 30w 字的硬核面试笔记&#xff01; 感谢你的关注&…

【ios】在 SwiftUI 中实现可随时调用的加载框

在 SwiftUI 项目中实现一个自定义的加载框&#xff08;loading&#xff09;功能&#xff0c;可以在任意位置调用&#xff0c;以便显示加载动画或者进度条。下面的教程将详细讲解如何创建一个可复用的 Loading 组件&#xff0c;并通过通知机制控制其显示和隐藏。 先上效果&…

MySQL【知识改变命运】10

联合查询 0.前言1.联合查询在MySQL里面的原理2.练习一个完整的联合查询2.1.构造练习案例数据2.2 案例&#xff1a;⼀个完整的联合查询的过程2.2.1. 确定参与查询的表&#xff0c;学⽣表和班级表2.2.2. 确定连接条件&#xff0c;student表中的class_id与class表中id列的值相等2.…

wordpress 子比主题美化 四宫格 多宫格 布局插件

wordpress 主题美化 四宫格 多宫格 布局插件&#xff08;只在子比主题上测试过&#xff0c;其它主题没测试&#xff09; A5资源网四宫格布局插件是一个功能丰富的WordPress插件,专为创建自适应的四宫格布局而设计。这个插件具有以下主要特点: 灵活的布局: 支持1到8个宫格的自定…

nginx代理配置,搞定proxy_pass配置

nginx代理配置 容易晕的proxy_pass 后面 url带不带”/“的问题代理配置举例 常用代理配置前端页面代理前端请求代理后端请求代理 容易晕的proxy_pass 后面 url带不带”/“的问题 &#xff08;1&#xff09;配置 proxy_pass 时&#xff0c;当在后面的 url 加上了 /&#xff0c;…

Java中的泛型——类型介绍与使用详解

1.什么是泛型 泛型&#xff08;Generics&#xff09;是 Java 提供的一种特性&#xff0c;使得类、接口、方法可以操作各种类型的对象&#xff0c;而不必在编写时指定具体的类型。泛型允许我们在定义时使用类型参数&#xff0c;并在实际使用时为这些参数提供具体的类型。泛型的主…

Springboot整合knife4j生成文档

前言 在开发过程中&#xff0c;接口文档是很重要的内容&#xff0c;用于前端对接口的联调&#xff0c;也用于给其他方使用。但是手写相对比较麻烦。 当然也有swagger之类的&#xff0c;但是界面没有那么友好。 官网&#xff1a; 整合步骤 整合依赖 需要根据版本进行&…

Java方法的递归调用

Java中的方法可以通过调用自身来实现递归调用。 递归调用在解决一些问题时非常有用&#xff0c;特别是那些可以分解为相同结构的子问题的情况。递归调用可以让问题的解决过程更加简洁和优雅。 下面是一个简单的示例&#xff0c;展示了如何使用递归调用来计算一个数字的阶乘&a…

如何使用 pnpm 进行打补丁patch操作?推荐两个方法

前言 作为一个前端开发者&#xff0c;我们每天都在和各种各样的库和依赖打交道。node_modules 目录中存放着我们项目的各种依赖。我们有时需要对其中的一些依赖进行修改&#xff0c;比如修复某个 bug 或者增加某些自定义功能。这时候&#xff0c;给 node_modules 打补丁就显得…

软考高级系统架构设计师 知识产权

是记录&#xff0c;这一章内容是选择题&#xff0c;分值是两到三分之间 计算机保护条例 软件地定义 软件是软件及其文档 软件开发者 即写代码或者组织开发地&#xff0c;并对开发完成地软件承担责任地法人软件著作权人&#xff0c;是对软件享有著作权地自然人、法人或者其他组…

springboot 对接Telegram发送消息

官方maven包项目 https://repo.maven.apache.org/maven2/org/telegram/ 官方github仓库 https://github.com/rubenlagus 发送消息demo代码 PostMapping("/test")public void test(RequestParam("chatId") String chatId,RequestParam("messageTe…