自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(88)
  • 资源 (5)
  • 收藏
  • 关注

原创 MySQL索引失效

索引是一种特殊的数据库结构,由数据表中的一列或多列组合而成,可以用来快速查询数据表中有某一特定值的记录。本节将详细讲解索引的含义、作用和优缺点。通过索引,查询数据时不用读完记录的所有信息,而只是查询索引列。否则,数据库系统将读取每条记录的所有信息进行匹配。可以把索引比作新华字典的音序表。例如,要查“库”字,如果不使用音序,就需要从字典的 400 页中逐页来找。但是,如果提取拼音出来,构成音序表,就只需要从 10 多页的音序表中直接查找。这样就可以大大节省时间。因此,使用索引可以很大程度上提高数据库的查

2022-06-24 07:50:07 212 1

原创 分布式事务 Seata

简介Seata(Simple Extensible Autonomous Transaction Architecture) 是 阿里巴巴开源的分布式事务中间件,以高效并且对业务 0 侵入的方式,解决微服务场景下面临的分布式事务问题。Seata 将为用户提供了 AT、TCC、SAGA 和 XA 事务模式,为用户打造一站式的分布式解决方案。事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit)。在关系数据库中,一个事务由 一组SQL语句组成。事务应该具有4个属性:原

2022-05-04 14:58:29 273

原创 MySQL三大范式

第一范式(1NF)数据表的每一列都要保持它的原子特性,也就是列不能再被分割。下图不符合第一范式第二范式(2NF)概率:属性必须完全依赖于主键.下图不符合第二范式第三范式(3NF)概念:所有的非主属性不依赖于其他的非主属性,第三范式是第二范式的特殊形态。设X,Y,Z是关系R中互不相同的属性集合,存在X→Y(Y !→X),Y→Z,则称Z传递函数依赖于X。...

2022-04-29 19:12:38 798

原创 SpringBoot 启动原理浅析

1.调用SpringApplication.run启动springboot应用2.使用SpringApplication进行启动3.创建SpringApplication4.启动public ConfigurableApplicationContext run(String... args) { // 用来记录当前springboot启动耗时 StopWatch stopWatch = new StopWatch(); // 就是记录了启动开始时间 stopWatch.star

2022-04-26 20:58:31 710

原创 CopyOnWriteArrayList底层原理

add、setCopyOnWriteArrayList内部也是通过数组进行实现,调用add()或者set()方法时获取原数组,获取原长度,进行复制扩容长度加一,且用了ReentrantLock进行锁定写操作结束之后,会把原数组指向新数组CopyOnWriteArrayList允许写操作时读取数据,大大提高读的性能,适合读多写少的场景,但是CopyOnWriteArrayList会比较占用内存,可能读到的数据不是最新的,所以不适合实时性要求很高的场景。get不涉及加锁操作,读性能很高.

2022-04-13 21:06:36 317

原创 Java String相加底层原理

Java String相加底层原理

2022-04-07 21:02:22 2216 1

原创 Java对象转xml

代码格式实体类package com.jwttest.demo.toxml;import javax.xml.bind.annotation.*;import java.util.ArrayList;@XmlRootElement(name="person") // 父节点名称@XmlAccessorType(XmlAccessType.FIELD) //定义这个类中的何种类型需要映射到XMLpublic class Person { @XmlElement(name = "n

2022-03-12 13:53:58 4066 2

原创 Bean的创建生命

// userService@Componentpublic class UserService { @Autowired private OrderService orderService; public void userServiceSay(){ System.out.println("1111111111111"); }}@ComponentScan("com.tulingt")public class AppConfig {

2021-12-20 21:03:45 93

原创 volatile关键字解释

volatile关键字volatile在多线程下保证可见性,可见性,是指线程之间的可见性,一个线程修改的状态对另一个线程是可见的volatile底层触发了缓存一致性机制,M:代表已修改(Modified):Cache Block 里面的内容我们已经更新过了,但是还没有写回到主内存里面;E:代表独占(Exclusive):Cache Block 里面的数据和主内存里面的数据是一致的;S:代表共享(Shared):Cache Block 里面的数据和主内存里面的数据是一致的;I:代表已失效(Inva

2021-12-08 21:24:21 284

原创 过滤器与拦截器的区别,以及拦截器的使用

二者区别过滤器基于Servlet容器,应用场景为对字符编码、跨域等问题进行过滤,实现Filter接口拦截器是SpringMVC中实现的一种基于Java反射(动态代理)机制的方法增强工具,拦截器的实现HandlerInterceptor 接口,并实现接口的preHandle、postHandle和afterCompletion方法。编写完拦截器之后,通过一个配置类设置拦截器,并且可以通过addPathPatterns和excludePathPatterns执行哪些请求需要被拦截,哪些不需要被拦截。相

2021-11-24 11:05:50 1052

原创 redis 效率分析

1.1 完全基于内存  Redis完全基于内存,大部分都是简单的存取操作,大量的时间花费在IO上。Redis绝大部分操作时间复杂度为O(1),所以速度十分快。1.2 非阻塞IO、多路IO复用模型  Redis采用多路IO复用模型,在内部采用epoll代理。多路是指多个网络连接,IO复用是指复用同一个线程。epoll会同时监察多个流的IO事件,在空闲时,当前线程进入阻塞,如果有IO事件时,线程会被唤醒,并且epoll会通知线程是哪个流发生了IO事件,然后按照顺序处理,减少了网络IO的时间消耗,避免了大

2021-11-22 13:45:02 936

原创 MySQL执行顺序

FROMONJOINWHEREGROUP BYHAVINGSELECTDISTINCTORDER BYLIMIT这些步骤执行时,每个步骤都会产生一个虚拟表,该虚拟表被用作下一个步骤的输入。这些虚拟表对调用者(客户端应用程序或者外部查询)不可用。只是最后一步生成的表才会返回给调用者。如果没有在查询中指定某一子句,将跳过相应的步骤。SELECT各个阶段分别干了什么:1. FROM阶段FROM阶段标识出查询的来源表,并处理表运算符。在涉及到联接运算的查询中(各种JOIN),主要有.

2021-11-19 17:18:30 81

原创 MySQL 索引

性质 - 索引是帮助MySQL高效获取数据的排好序的数据结构 - 索引数据结构 二叉树 不适合递增的索引,会形成链表形态 红黑树 当数据量很大时,会造成多次io,影响效率 Hash表 B-Tree数据库引擎区别MyISAM: 当数据库引擎为MyISAM时,会以三个文件进行存储,其后缀名分别为 frm 存储数据表结构 MYD 存储数据库基础数据 MYI 存储索引字段 底层查找逻辑,使用索引找到MYI数据然后得到存储的磁盘空间地址进而

2021-11-19 11:50:57 579

原创 redis分布式锁

1.简单分布式锁使用setnx key value,任务执行完毕之后删除即可@RestControllerpublic class RedisController { @Autowired private StringRedisTemplate stringRedisTemplate; @RequestMapping("deleteInventory") public String deleteInventory(){ String lockKey

2021-11-18 17:49:17 825

原创 事务失效的原因

1.没有被spring管理// @Servicepublic class OrderServiceImpl implements OrderService { @Transactional public void updateOrder(Order order) { // update order }}如果此时把 @Service 注解注释掉,这个类就不会被加载成一个 Bean,那这个类就不会被 Spring 管理了,事务自然就失效了。2.方法不是 pu

2021-11-18 15:17:10 286

原创 Java简答理解 设计模式

分类统分为三大类: 1. 创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。 2. 结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模式、组合模式、享元模式。 3. 行为型模式,共十一种:策略模式、模板方法模式、观察者模式、迭代子模式、责任链模式、命令模式、备忘录模式、状态模式、访问者模式、中介者模式、解释器模式。设计原则开闭原则:对扩展开发,对修改关闭,达到热拔插的效果,我们需要使用接口和抽象类。里氏代换原则:任何基类可以出现的地方,子

2021-11-18 14:59:08 483

原创 SpringBoot整合Quartz,做到数据库持久化

pom文件引入<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/mav

2021-10-31 00:11:43 726

原创 SpringBoot使用Logback日志

1.删除application.properties中的日志配置**2.resources 中创建 logback-spring.xml **<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="10 seconds"> <!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATA

2021-10-19 00:00:18 132

原创 Mybatis 逻辑删除

1.配置逻辑删除插件2.在实体类中增加注解@TableLogic注解参数value = "" 未删除的值,默认值为0delval = "" 删除后的值,默认值为1@TableLogic(value="原值",delval="改值")3.在Controller开始写代码

2021-10-16 17:38:24 655

原创 SpringBoot 统一返回的json时间格式

默认情况下json时间格式带有时区,并且是世界标准时间,和我们的时间差了八个小时,在application.properties中设置#返回json的全局时间格式spring.jackson.date-format=yyyy-MM-dd HH:mm:ssspring.jackson.time-zone=GMT+8...

2021-10-16 17:16:06 434

原创 mybatisPlus 代码生成器

import com.baomidou.mybatisplus.annotation.DbType;import com.baomidou.mybatisplus.annotation.IdType;import com.baomidou.mybatisplus.generator.AutoGenerator;import com.baomidou.mybatisplus.generator.config.DataSourceConfig;import com.baomidou.mybatisplu

2021-10-14 17:58:38 37

原创 django 下载返回文件流

class downMonth(View): def get(self,request): strTime1 = request.GET.get('time') filepath = "{}/searchText/{}.zip".format( settings.BASE_DIR ,strTime1) # 文件所在位置 file = open(filepath, 'rb') response = FileResponse(file)

2021-10-14 17:47:13 851

原创 python 压缩指定文件夹

# 压缩月文件 startdir = "{}/searchText/{}".format(settings.BASE_DIR,strDay[0:10]) # 要压缩的文件夹路径 file_news = startdir + '.zip' # 压缩文件名称 z = zipfile.ZipFile(file_news, 'w', zipfile.ZIP_DEFLATED) for dirpath, dirnames, filenames in os.walk(startdir.

2021-10-12 11:15:28 207

原创 python 返回指定文件下所包含的文件名称(含Windows与Linux)

Windowsimport wmifrom pathlib import Pathimport win32fileimport [email protected]("/getPath", methods=["GET"])def getPath(): try: get_data = request.args.to_dict() #替换相应的文件路径即可 getPath = get_data.get("path","") if getPath

2021-10-12 10:23:48 355

原创 sprintboot 创建项目网络失败问题

https://start.aliyun.com/

2021-10-11 17:40:49 59

原创 python添加图片到word文档中

from docx import Documentdoc = docx.Document('23.docx')doc.add_picture('demo.jpg')doc.save('a.docx') #保存图像

2021-10-11 16:56:27 5115

原创 python生成折线图

from pylab import *mpl.rcParams['font.sans-serif'] = ['SimHei'] # 添加这条可以让图形显示中文x_axis_data = ['2020-1-1', '2020-1-2', '2020-1-3', '2020-1-4', '2020-1-5'] # x轴数据y_axis_data = [561,221,389,999,12] # y轴数据# plot中参数的含义分别是横轴值,纵轴值,线的形状,颜色,透明度,线的宽度和标签plt.p

2021-10-11 16:45:12 421

原创 flask 链接数据库 in 查询和保存

代码from json import JSONEncoderfrom flask import Flask, request,send_from_directory#导入第三方连接库from flask_sqlalchemy import SQLAlchemyimport jsonfrom datetime import datetimeimport timefrom flask.json import JSONEncoder as _JSONEncoderfrom flask impo

2021-08-12 14:41:24 567

原创 flask文件下载、数据存储到excel中

代码# 下载接口import pandas as pdfrom flask import Flask, jsonify, request, redirect, render_template, [email protected]("/downLoad", methods=["GET"])def downLoad(): get_data = request.args.to_dict() id = get_data.get("id") details =

2021-08-12 14:32:09 490

原创 json去重,将数据库内容导成json形式,并根据某个字段进行去重判定

代码import json# 以json形式打开初始文件with open("xxx.json", 'r', encoding='utf-8') as f: tmp = json.load(f) # 存放不相同的json信息list1 = []# 创建set 利用无序不重复特性set1 = set()# 遍历所有数据,对不重复的title 放入set集合中for i in tmp: set1.add(i['title'])print(len(set1))# 遍历

2021-08-05 09:37:19 273

原创 flask 实现序列化返回

代码from decimal import Decimalfrom json import JSONEncoderfrom bson import ObjectIdfrom flask import Flask, request, jsonify#导入第三方连接库from flask_sqlalchemy import SQLAlchemyimport jsonimport zipfileimport datetimefrom sqlalchemy import create_engi

2021-08-04 11:58:12 869

原创 flask 上传zip文件并解压

代码示例from flask import Flask,requestimport zipfileimport datetime# Flaskapp = Flask(__name__)@app.route("/judge", methods=["POST"])def check(): file = request.files['file'] fileName = file.filename if str(fileName).split('.')[1] != 'zi

2021-08-03 17:17:57 980

原创 SpringBoot项目打包

2021-07-29 09:57:55 57

原创 读取excel 并修改

import xlrdwb = xlrd.open_workbook(filename='查院士.xlsx')table = wb.sheets()[0]row = table.nrowsdata_list = []for i in range(1,row): col = table.row_values(i) data_list.append(col[0])print(data_list)# 两院院士wb1 = xlrd.open_workbook(filename='.

2021-07-24 16:27:28 233

原创 Quartz任务调度框架

核心概念1.任务JobJob就是你想要实现的任务类,每一个Job必须实现org.quartz.job接口,且只需实现接口定义的execute()方法2.触发器TriggerTrigger为你执行任务的触发器,比如你想每天定时3点钟发送一份邮件,Trigger将会设置3点进执行任务。Trigger主要包含两种SimpleTrigger和CronTrigger两种。3.调度器SchedulerScheduler为任务的调度器,它会将任务job及触发器Tigger整合起来,负责基于Trigger

2021-07-17 14:32:16 42

原创 Python传递json数据与正常响应数据 springboot传递get请求 区别

python 请求import requests#传递正常响应数据def DeadWith(data,dealtty): dataParams = {"task_id":data[0],"type":data[1],"size":data[2]} url = "http://127.0.0.1:8000/xxxx" # 模型地址 res = requests.get(url, params=dataParams)#传递json数据def get(self,requ

2021-07-16 17:52:08 126

原创 爬虫初学

常见的请求头1.Content-Type 定义网络文件的类型和网页的编码2.Host 主机和端口号3.Connection 链接类型4.upgrade-insecure-requests 升级为HTTPS请求5.User-Agent 浏览器名称6.Referer 页面跳转处,防盗链7.Cookie cookie8.Authorization 表示HTTP协议中需要认证资源的认证信息响应头set-cookie...

2021-06-30 18:04:24 36

原创 Java 视频流分段返回

package com.example.demo.controller;import ch.qos.logback.core.net.SyslogOutputStream;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;import javax.servlet.http.HttpServletRequest

2021-06-30 11:15:30 970 1

原创 Python 文件编码格式

f_2 = open('test_1.txt', 'rb') # 注意此处打开方式 'rb'str_1 = f_2.read()chardet_1 = chardet.detect(str_1)print('该字符串为: ', str_1)print('该字符串编码信息为:', chardet_1)print('该字符串编码为: ', chardet_1['encoding'])...

2021-06-28 13:48:57 103

原创 django分页查询

分页管理# 分页管理class pageManagement(View): def get(self, request): try: page = int(request.GET.get('page', '1')) size = int(request.GET.get('size', '3')) startPage = 0 if page == 1: s

2021-06-25 15:38:27 258

SpringClouldAlibaba-Nacos-master.zip

Nacos的简单代码

2021-02-16

docker安装配置

详细介绍了docker的安装与配置,从第一步开始,到项目的发布,平移化、简易化的配置,让新手更快的掌握docker

2020-10-30

sorl的安装与配置详解.pdf

sorl安装与配置,适合于初学者与刚刚学习java的人,操作简单,快捷,方便,流畅,配置清晰明了,步骤详细,是初学者的福音,也利于广大开发者进行简化方便的操作。

2020-10-02

redis安装与配置.pdf

redis的安装与配置,从一开始到最后,都有详细信息介绍,包括详情命令,格式明确,信息明了,步骤简单易懂,操作方便,为初学者提供极大的便利,提高初学者的自信心与体验感

2020-10-01

linux初级配置与安装

linux初级配置与安装,本文介绍如何安装虚拟机VMware以及如果在虚拟机上安装Linux系统以及Linux安装完毕之后的基础配置需要准备的东西有VMware以及Linux镜像文件,包括一些基础的设置,方便人们快速熟练掌握linux

2020-09-25

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除