ssm学院党员管理系统源码和论文PPT

ssm学院党员管理系统源码和论文PPT002

开发工具:idea 

 数据库mysql5.7+(mysql5.7最佳)

 数据库链接工具:navcat,小海豚等

开发技术:java  ssm tomcat8.5

选题意义、价值和目标:

随着鄂尔多斯应用技术学院招生规模的不断扩大,学院党员的数量也在不断增加,以往采用的人工管理党员信息的方式,在数据共享、存储、查询、管理、汇总等工作中都存在很多困难。并且传统方式管理党员信息无法满足新时期的工作需求,暴露出很多弊端,因此,需要针对鄂尔多斯应用技术学院实际的情况,设计开发出一款鄂尔多斯应用技术学院党员管理系统。该系统可以使党员信息管理工作规范化,还可以提高党建工作效率,增强党员工作考核的严谨度和透明度。 

写作提纲:

本论文将会从以下几部分撰写:

(1)绪论。主要介绍研究背景及意义,以及研究内容。

(2)相关技术。介绍此系统使用到的技术与工具。

(3)系统分析。主要分析系统可行性与功能需求等。

(4)系统设计。主要对系统功能和数据库进行设计。

(5)系统功能实现。主要介绍系统界面的实现。

(6)系统测试。阐述系统的功能测试。

(7)结论。对本系统的不足做出总结,分析系统需要改进与完善的方面。

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.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.DangyuanEntity;
import com.entity.view.DangyuanView;import com.service.DangyuanService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 党员* 后端接口* @author * @email * @date 2023-12-17 17:40:13*/
@RestController
@RequestMapping("/dangyuan")
public class DangyuanController {@Autowiredprivate DangyuanService dangyuanService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@RequestMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {DangyuanEntity user = dangyuanService.selectOne(new EntityWrapper<DangyuanEntity>().eq("zhanghao", username));if(user==null || !user.getMima().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(), username,"dangyuan",  "党员" );return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@RequestMapping("/register")public R register(@RequestBody DangyuanEntity dangyuan){//ValidatorUtils.validateEntity(dangyuan);DangyuanEntity user = dangyuanService.selectOne(new EntityWrapper<DangyuanEntity>().eq("zhanghao", dangyuan.getZhanghao()));if(user!=null) {return R.error("注册用户已存在");}Long uId = new Date().getTime();dangyuan.setId(uId);dangyuanService.insert(dangyuan);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");DangyuanEntity user = dangyuanService.selectById(id);return R.ok().put("data", user);}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){DangyuanEntity user = dangyuanService.selectOne(new EntityWrapper<DangyuanEntity>().eq("zhanghao", username));if(user==null) {return R.error("账号不存在");}user.setMima("123456");dangyuanService.updateById(user);return R.ok("密码已重置为:123456");}/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,DangyuanEntity dangyuan, HttpServletRequest request){EntityWrapper<DangyuanEntity> ew = new EntityWrapper<DangyuanEntity>();PageUtils page = dangyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, dangyuan), params), params));request.setAttribute("data", page);return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,DangyuanEntity dangyuan, HttpServletRequest request){EntityWrapper<DangyuanEntity> ew = new EntityWrapper<DangyuanEntity>();PageUtils page = dangyuanService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, dangyuan), params), params));request.setAttribute("data", page);return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( DangyuanEntity dangyuan){EntityWrapper<DangyuanEntity> ew = new EntityWrapper<DangyuanEntity>();ew.allEq(MPUtil.allEQMapPre( dangyuan, "dangyuan")); return R.ok().put("data", dangyuanService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(DangyuanEntity dangyuan){EntityWrapper< DangyuanEntity> ew = new EntityWrapper< DangyuanEntity>();ew.allEq(MPUtil.allEQMapPre( dangyuan, "dangyuan")); DangyuanView dangyuanView =  dangyuanService.selectView(ew);return R.ok("查询党员成功").put("data", dangyuanView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){DangyuanEntity dangyuan = dangyuanService.selectById(id);return R.ok().put("data", dangyuan);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") String id){DangyuanEntity dangyuan = dangyuanService.selectById(id);return R.ok().put("data", dangyuan);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody DangyuanEntity dangyuan, HttpServletRequest request){dangyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(dangyuan);DangyuanEntity user = dangyuanService.selectOne(new EntityWrapper<DangyuanEntity>().eq("zhanghao", dangyuan.getZhanghao()));if(user!=null) {return R.error("用户已存在");}dangyuan.setId(new Date().getTime());dangyuanService.insert(dangyuan);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody DangyuanEntity dangyuan, HttpServletRequest request){dangyuan.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(dangyuan);DangyuanEntity user = dangyuanService.selectOne(new EntityWrapper<DangyuanEntity>().eq("zhanghao", dangyuan.getZhanghao()));if(user!=null) {return R.error("用户已存在");}dangyuan.setId(new Date().getTime());dangyuanService.insert(dangyuan);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody DangyuanEntity dangyuan, HttpServletRequest request){//ValidatorUtils.validateEntity(dangyuan);dangyuanService.updateById(dangyuan);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){dangyuanService.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<DangyuanEntity> wrapper = new EntityWrapper<DangyuanEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}int count = dangyuanService.selectCount(wrapper);return R.ok().put("count", count);}}

 

主要参考文献:

[1]许丹丹,卢珍.浅析高职院校党员信息化系统的模块设计[J].通讯世界,2020,27(04):212-213.

[2]李军.新时代高校发展学生党员管理信息系统的思考[J].西南林业大学学报(社会科学),2020,4(01):51-53.

[3]宋丽娜.基于JSP的Web开发中文乱码问题的研究与解决[J].电子技术,2015,42(11):5-7.

[4]汪君宇.基于JSP的Web应用软件开发技术分析[J].科技创新与应用,2018(16):158-160.

[5]赵钢.JSP Servlet+EJB的Web模式应用研究[J].电子设计工程,2016,21(13):47-49.

[6]肖英.解决JSP/Servlet开发中的中文乱码问题[J].科技传播,2017,(1)11-25.

[7]朱钧.基于角色的jsp通用权限系统设计与实现[D].山东大学,2014.

[8]康牧.JSP动态网站开发实用教程[M].清华大学出版社,2014.

[9]王建国.数据库设计在网站开发中的应用[J].山东农业工程学院学报,2017,34(04):158-159+164.

[10]张知青.基于关系数据库的查询方法及优化技术分析[J].煤炭技术,2015,31(05):218-220.

[11]Konstantins Gusarovs. An Analysis on Java Programming Language Decompiler Capabilities[J]. Applied Computer Systems,2018,23(2).

[12]Tan Yiyu. A Hardware-oriented Object Model for Java in an Embedded Processor[J]. Microprocessors and Microsystems,2018.

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.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.JiangchengjiluEntity;
import com.entity.view.JiangchengjiluView;import com.service.JiangchengjiluService;
import com.service.TokenService;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.MPUtil;
import com.utils.CommonUtil;/*** 奖惩记录* 后端接口* @author * @email * @date 2023-12-17 17:40:13*/
@RestController
@RequestMapping("/jiangchengjilu")
public class JiangchengjiluController {@Autowiredprivate JiangchengjiluService jiangchengjiluService;/*** 后端列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,JiangchengjiluEntity jiangchengjilu, HttpServletRequest request){String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("dangyuan")) {jiangchengjilu.setZhanghao((String)request.getSession().getAttribute("username"));}EntityWrapper<JiangchengjiluEntity> ew = new EntityWrapper<JiangchengjiluEntity>();PageUtils page = jiangchengjiluService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiangchengjilu), params), params));request.setAttribute("data", page);return R.ok().put("data", page);}/*** 前端列表*/@RequestMapping("/list")public R list(@RequestParam Map<String, Object> params,JiangchengjiluEntity jiangchengjilu, HttpServletRequest request){EntityWrapper<JiangchengjiluEntity> ew = new EntityWrapper<JiangchengjiluEntity>();PageUtils page = jiangchengjiluService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.likeOrEq(ew, jiangchengjilu), params), params));request.setAttribute("data", page);return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/lists")public R list( JiangchengjiluEntity jiangchengjilu){EntityWrapper<JiangchengjiluEntity> ew = new EntityWrapper<JiangchengjiluEntity>();ew.allEq(MPUtil.allEQMapPre( jiangchengjilu, "jiangchengjilu")); return R.ok().put("data", jiangchengjiluService.selectListView(ew));}/*** 查询*/@RequestMapping("/query")public R query(JiangchengjiluEntity jiangchengjilu){EntityWrapper< JiangchengjiluEntity> ew = new EntityWrapper< JiangchengjiluEntity>();ew.allEq(MPUtil.allEQMapPre( jiangchengjilu, "jiangchengjilu")); JiangchengjiluView jiangchengjiluView =  jiangchengjiluService.selectView(ew);return R.ok("查询奖惩记录成功").put("data", jiangchengjiluView);}/*** 后端详情*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){JiangchengjiluEntity jiangchengjilu = jiangchengjiluService.selectById(id);return R.ok().put("data", jiangchengjilu);}/*** 前端详情*/@RequestMapping("/detail/{id}")public R detail(@PathVariable("id") String id){JiangchengjiluEntity jiangchengjilu = jiangchengjiluService.selectById(id);return R.ok().put("data", jiangchengjilu);}/*** 后端保存*/@RequestMapping("/save")public R save(@RequestBody JiangchengjiluEntity jiangchengjilu, HttpServletRequest request){jiangchengjilu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(jiangchengjilu);jiangchengjiluService.insert(jiangchengjilu);return R.ok();}/*** 前端保存*/@RequestMapping("/add")public R add(@RequestBody JiangchengjiluEntity jiangchengjilu, HttpServletRequest request){jiangchengjilu.setId(new Date().getTime()+new Double(Math.floor(Math.random()*1000)).longValue());//ValidatorUtils.validateEntity(jiangchengjilu);jiangchengjiluService.insert(jiangchengjilu);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody JiangchengjiluEntity jiangchengjilu, HttpServletRequest request){//ValidatorUtils.validateEntity(jiangchengjilu);jiangchengjiluService.updateById(jiangchengjilu);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){jiangchengjiluService.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<JiangchengjiluEntity> wrapper = new EntityWrapper<JiangchengjiluEntity>();if(map.get("remindstart")!=null) {wrapper.ge(columnName, map.get("remindstart"));}if(map.get("remindend")!=null) {wrapper.le(columnName, map.get("remindend"));}String tableName = request.getSession().getAttribute("tableName").toString();if(tableName.equals("dangyuan")) {wrapper.eq("zhanghao", (String)request.getSession().getAttribute("username"));}int count = jiangchengjiluService.selectCount(wrapper);return R.ok().put("count", count);}}

 

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

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

相关文章

qt lamda表达式及捕获变量列表符号说明及示例

问题描述: 最近发现很多人都喜欢用Lamda表达式了,至于他们到底知不知道自己用的是什么意思,那就另说了。 虽然我个人并不太喜欢,因为很多地方没法像以前信号和槽那样清晰了,而且很多生成UML的软件估计也不支持解析转成对应的序列图啥的。 但是这个lamda写法确实挺方便的…

LeetCode209. 长度最小的子数组

题目&#xff1a;LeetCode209. 长度最小的子数组 描述&#xff1a; 给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子…

改进DevSecOps框架的 5 大关键技术

Markets and Markets的一项研究显示&#xff0c;全球DevOps的市场规模从2017年的29亿美元增加到2023年的103.1亿美元&#xff0c;预测期的年复合增长率(CAGR)为24.7%。人们对DevOps越来越感兴趣&#xff0c;因为DevOps不仅能够压缩软件的交付周期&#xff0c;还能提高交付的速度…

geeemap学习总结(1)——Anaconda-VSCode-geemap环境安装与配置

配置conda geemap 环境 通过Anaconda配置geemap环境较为方便&#xff0c;首先需在系统中完成 Anaconda安装。创建名为geemap的环境conda create -n geemap切换到新建的环境conda activate geemap安装geemap依赖包conda install -c conda-forge geemap 安装mambaconda install …

【leetcode】349. 两个数组的交集(easy)

给定两个数组 nums1 和 nums2 &#xff0c;返回 它们的交集 。输出结果中的每个元素一定是 唯一 的。我们可以 不考虑输出结果的顺序 。 思路&#xff1a; 先遍历nums1将其元素不重复地添加到哈希表a中&#xff1b;建立哈希表dup用于存储b和a重复的元素&#xff1b;遍历nums2…

chrome插件开发实例08- 使用Vue.js开发chrome插件

目录 背景 演示 功能介绍 插件下载 注意写法: 背景 将 下面的两个插件 改写成vue.js , elementui 实现chrome插件开发实例0

Oracle笔记--dblink

概述 1、database link是定义一个数据库到另一个数据库的路径的对象&#xff0c;database link允许你查询远程表及执行远程程序。在任何分布式环境里&#xff0c;database都是必要的。另外要注意的是database link是单向的连接。 2、在创建database link的时候&#xff0c;Ora…

ACM算法竞赛中在编辑器中使用输入输出样例-CPH

通用方法 我们可以在编辑器中创建三个文件&#xff0c;一个是main.cpp,一个是test.in,一个是test.out分别用来写代码&#xff0c;输入输入数据&#xff0c;显示输出数据 这种方法的好处是不需要插件&#xff0c;在任何编辑器中都可以实现&#xff0c;例如Devc,sublime,vscode…

C++单例模式

文章目录 1、什么是单例2、一个好的单例应该具备的条件3、懒汉模式与饿汉模式4、单例实现&#xff1a;线程安全、内存安全的懒汉式单例&#xff08;基于C11的智能指针和互斥锁&#xff09; 1、什么是单例 单例 Singleton 是设计模式的一种&#xff0c;其特点是只提供唯一一个类…

重磅!TikTok将于8月底关闭半闭环

站斧浏览器获悉&#xff1a; 8月4日消息&#xff0c;TikTok或将于8月底正式关闭半闭环&#xff0c;届时卖家将无法在TikTok上放置外链或引导至独立站成交&#xff0c;该消息已经得到TikTok官方人员的确认。 多位业内人士表示&#xff0c;TikTok关闭半闭环一方面是因为其电商业…

【Pyhthon实战】Python对全校电费查询采集并可视化分析

前言 今天,我来说说怎么抓取宿舍电费的过程。我们学校是在完美校园交电费的,我们可以不用取抓包完美校园的数据接口,我们可以直接登录学校的一卡通网站,每个学校都有,大家可以自己找找,这里我为什么要抓包呢,因为学校提供的网站已经打不开了,这里就不介绍怎么抓包了。 …

直播电商赋能跨境业务,Live Market创造全民参与的生态圈

全球疫情的影响让跨境电商业务受到了巨大的冲击&#xff0c;但同时也为跨境电商业务带来了新的机遇和挑战。直播电商作为电子商务行业的新兴业务版块&#xff0c;成为了跨境电商业务的一个重要推动力量。在这个背景下&#xff0c;直播电商成为了跨境电商业务的一个主流业务版块…

php-cgi.exe - FastCGI 进程超过了配置的请求超时时限

解决方案一&#xff1a; 处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题 内容转载&#xff1a; 处理(php-cgi.exe - FastCGI 进程超过了配置的请求超时时限)的问题_php技巧_脚本之家 【详细错误】&#xff1a; HTTP 错误 500.0 - Internal Server Error C:…

python爬虫之scrapy框架介绍

一、Scrapy框架简介 Scrapy 是一个开源的 Python 库和框架&#xff0c;用于从网站上提取数据。它为自从网站爬取数据而设计&#xff0c;也可以用于数据挖掘和信息处理。Scrapy 可以从互联网上自动爬取数据&#xff0c;并将其存储在本地或在 Internet 上进行处理。Scrapy 的目标…

vue3中用watch监听响应式数据的注意点

如果你在vue3中使用reactive()方法创建响应式数据&#xff0c;然后又用torefs()方法将响应式数据解构成单一的ref响应式数据。 此时&#xff0c;如果你想用watch监听解构出来单一的响应式数据&#xff0c;watch不起作用。 此时&#xff0c;你需要用watch监听之前的reactive()…

122、SpringBoot中有几种定义Bean的方式?

SpringBoot中有几种定义Bean的方式? SpringBoot中有几种定义Bean的方式?代码栗子演示1、@Bean2. @Component3. @Controller、@RestController、@Service、@Repository4. @ControllerAdvice、@RestControllerAdvice5. @Configuration6. @Import7. BeanDefinition8. \<bean\…

C#使用SnsSharp实现鼠标键盘钩子,实现全局按键响应

gitee下载地址&#xff1a;https://gitee.com/linsns/snssharp 一、键盘事件&#xff0c;使用SnsKeyboardHook 按键事件共有3个&#xff1a; KeyDown(按键按下) KeyUp(按键松开) KeyPress(按键按下并松开) 以KeyDown事件为例&#xff0c;使用代码如下&…

Python如何打开pkl的sample text?(上篇)

点击上方“Python爬虫与数据挖掘”&#xff0c;进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 昨夜闲潭梦落花&#xff0c;可怜春半不还家。 大家好&#xff0c;我是皮皮。 一、前言 前几天在Python私教群【Emma】问了一个Python读取数据的问题&am…

mysql_docker主从复制_实战_binlog混合模式_天座著

步骤1&#xff1a;拉取镜像 docker pull mariadb:latest 步骤2.1&#xff1a;创建两个文件夹用于放置挂载mysql的my.cnf /tianzuomysqlconf/master /tianzuomysqlconf/slave mkdir /tianzuomysqlconf cd /tianzuomysqlconf mkdir master mkdir slave 步骤2.2&#xff1a;创…

ElasticSearch:全文检索及倒排索引原理

1.从全文检索说起 首先介绍一下结构化与非结构化数据&#xff1a; 结构化数据将数据具有的特征事先以结构化的形式定义好&#xff0c;数据有固定的格式或有限的长度。典型的结构化数据就是传统关系型数据库的表结构&#xff0c;数据特征直接体现在表结构的字段上&#xff0c;…