自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(42)
  • 收藏
  • 关注

原创 MySQL数据库误删回滚

某次一不小心,用了delete from xxx 删除了几条重要数据,在网上找了很多方法,但都比较零散,打算记录本次数据找回的过程。大致分为以下几步1、查看binlog是否开启2、找到binlog文件名运行以上代码,如下图 TS1-bin.000009 就是我们要找的文件名3、查看binlog日志位置4、根据上面得到的位置,去找到 TS1-bin.000009 文件5、进入到mysql安装目录的bin目录下,执行以下命令根据误删除的时间范围从TS1-bin.000009文件导出成sql文件这

2022-06-29 17:41:04 5785 1

原创 前端发布到docker,容器内nginx做反向代理到其他的docker容器配置

事件过程:前端打包发布到docker容器,会用到nginx做反向代理到其他不同的容器。说几个注意的点:1、前端打包之前,一定要配置服务器坐在的地址到baseUrl,不能再使用localhost'use strict'module.exports = { NODE_ENV: '"production"', API: '"http://192.168.0.221"',}2、nginx配置文件内容user nginx;worker_processes auto;error_lo

2022-05-24 15:02:50 2163

原创 vue项目整合codemirror代码编辑器

需求:需要在web页面中整合一个sql的编辑器,选择了codemirror,以下被我封装成了组件,项目里改一改就可以直接用,codemirror支持很多语言,但我只需要使用sql编辑器,所以做了精简。安装使用步骤:1、安装npm i codemirror --save2、封装组件,这里可以直接复制<template> <div class="in-coder-panel"> <textarea ref="textarea"></textare

2022-05-10 15:50:05 1344 1

原创 MySQL触发器使用

需求:要求某个数据库表的数据任一行发生变更时,要删除另一个结构相同的表的指定数据并更新CREATE TRIGGER 触发器名 AFTER UPDATE ON 表名 FOR EACH ROW BEGIN这里是需要执行的sql,可以是多条sql,但是每条sql必须使用分号";"隔开。可以使用OLD关键字获取更新之前的数据,如:OLD.id。使用NEW关键字获取更新后的数据END...

2022-05-05 18:32:58 604

原创 项目打包docker镜像,并指定运行的配置文件

1、编写Dockerfile文件FROM java:8LABEL maintainer=zkCOPY DigitalCostTool-Service-0.0.1-SNAPSHOT.jar DCT.jarCOPY application.yml application.ymlENTRYPOINT ["java","-jar","/DCT.jar","--spring.config.location=/application.yml","-Dfile.encoding=UTF-8"]FROM:表示

2022-04-26 14:10:40 4458

原创 Ajax方式实现文件的下载

需求背景:今天实现一个文件下载功能,因为要对下载者进行token鉴权,而token是携带在header里面的,所以一般的方法例如用a标签,或者el-link这些都满足不了要求,只能通过ajax的方式实现,搞了一个小时,现在把前后端代码贴出来。后端代码,后端代码没有什么特殊的@PostMapping("/downloadFile")public void downloadFile(@Valid @RequestBody FileDownload fileDownload, HttpServletResp

2022-04-24 19:26:15 18547 4

原创 Mysql安装,控制台安装

控制台安装要比exe方式安装简单很多下载mysql,官网地址:mysql解压下载的文件后,在生成的主目录里面创建一个my.ini文件,文件内容如下[mysqld]# 端口号port=3306# mysql安装目录basedir=C:\Program Files\Mysql\mysql-8.0.19-winx64# 设置数据存放目录datadir=C:\Program Files\Mysql\mysql-8.0.19-winx64\data# 允许最大连接数max_connectio

2021-04-12 09:45:06 494

原创 java验证码

工具类,直接复制用package com.yhy.utils;import javax.imageio.ImageIO;import java.awt.*;import java.awt.image.BufferedImage;import java.io.IOException;import java.io.OutputStream;import java.util.Random;public class VerificationCode { private int widt

2021-04-01 20:50:09 129

原创 shiro-demo

package com.shiro;import at.pollux.thymeleaf.shiro.dialect.ShiroDialect;import org.apache.commons.collections.map.HashedMap;import org.apache.shiro.spring.web.ShiroFilterFactoryBean;import org.apache.shiro.web.mgt.DefaultWebSecurityManager;import org

2021-02-28 18:04:11 108

原创 linux安装mysql总结

mysql下载镜像地址https://blog.csdn.net/qq_41113081/article/details/94455417主要步骤参考链接https://www.jb51.net/article/175260.htm其中各种问题的参考1、不允许接连https://blog.csdn.net/qq_36358636/article/details/946733122、授权相关,版本差异带来的语法不同https://blog.csdn.net/qq_43524683/articl

2021-01-15 11:16:35 67

原创 springboot+vue前后端分离项目,拦截器获取不到session的问题,和解决思路

前后端分离的项目,浏览器发送请求给服务器通常都要发送两次,其中一次是options类型的请求,可打开network查看,主要是为了验证服务器是否可用,而options请求又不会携带我们自定义的header数据,所以必然会被拦截器给拦截,导致二次请求失败,因此对于options类型的请求必须无条件放行 if (request.getMethod().equals("OPTIONS")) { return true; }现在options请求可以通过,但是无法获

2020-12-13 13:26:19 4436

原创 分享一款谷歌插件adguard

下载地址链接:https://pan.baidu.com/s/1jMAA6kNMr1yqjQKXb7aMtQ提取码:0kk3

2020-11-26 18:14:22 1387

原创 Nginx找不到html文件,报错404的解决办法

如下图这样直接报错404,mi文件夹是我的静态资源文件夹,放在了nginx的html文件夹下奇怪的是root后面如果只有html就不会报错404之后把我的静态资源文件夹mi更换成全路径就不报错了,如下:

2020-10-20 11:37:31 3510

原创 VirtualBox上安装Linux的基本配置

这里主要记录下网络方面的配置一般情况下都是如上的配置,只有界面名称那里,根据实际情况而定,如果你是有线网,那就要变一下。当系统安装好了,输入可以查询ip地址的命令,一般新安装的linux都不支持ifconfig命令查看,所以直接用:ip addr 查看,我的如下:看上图已经有了ip地址,那是因为我已经配置好了,刚安装的系统是查看不了ip地址的,然后记住红圈里的网卡名称:enp0s3,这是我的网卡的名称,每个人的网卡名称可能都不一样,记住这个网卡名称的目的就是为了修改配置文件,而这个要修改的配置文

2020-10-19 14:35:47 224

原创 HashMap原理与简单实现HashMap

弄清楚HashMap原理,首先需要清楚HashMap底层使用的数据结构,jdk1.8之后,HashMap底层使用了:数组、链表、红黑树。数组:查询快,增删慢(数组长度固定,插入和删除都会建立新的数组,然后复制之前数组的数据)链表:增删快,查询慢(通常是一个节点挨着一个节点查询)红黑树:查询比链表快,但增删慢put方法的原理:通过key的hashCode值去模上数组的长度,从而得到数组的下标index。private int hash(Object k) { int hc = k.hash

2020-09-28 19:30:55 99

原创 后端程序员的前端速成经验分享

作为一个java后端程序员,对于前端的一些知识是必不可少的,比如html,css,js三大件。 现对前端基础知识做一个学习总结,掌握了这些知识,一个后端开发人员也可以不用模板独立完成开发。 前端三大件里面html和js相对来说都比较简单,这两种知识都是比较固定的,不用全部掌握 需要用到的时候,查询就可以了,而css相对三者中是较难的,页面布局和效果都要用css完成 虽然css完成一个页面效果方式是多样的,但其实也是有套路可循..

2020-08-12 11:29:35 1169

原创 eclipse打一个普通的可执行的jar包

选张项目右键,export如果用mvn install 在控制台打包,形成的jar文件无法执行,会报找不到入口类错误

2020-07-17 18:14:26 148

原创 SpringBoot定时任务设置

1、主启动类加上注解,开启定时任务@EnableScheduling2、创建定时任务类import org.springframework.beans.factory.annotation.Autowired;import org.springframework.scheduling.annotation.Scheduled;import org.springframework.stereotype.Component;import com.china.statistics.service.

2020-06-01 18:30:01 227

原创 记一次在Linux上安装Redis遇到的问题

1、下载好redis的压缩包后,把文件拷贝到Linux里面。tar -zxvf redis-5.0.8.tar.gz2、解压完成进入redis-5.0.8文件夹cd redis-5.0.83、编译,直接输入make这里遇到了第一个问题,因为redis需要c语言的编译环境,所以需要执行以下命令安装yum install gcc-c++但是安装不成功,显示无可用镜像,找了网上的方法执行以下命令yum clean allyum makecache继续使用yum install gcc-

2020-05-27 19:09:26 237

原创 Linux在yum时报错Could not resolve host: mirrorlist.centos.org

1、进入修改配置文件vi /etc/resolv.conf2、在配置文件里加上一句nameserver 114.114.114.114(这是国内的dns服务器系统,还是比较好用的。谷歌的可以使用8.8.8.8)3、重启网络service network restart问题解决参考原文https://blog.csdn.net/weicuidi/article/details/52935100...

2020-05-27 15:15:20 323

原创 Hystrix熔断器(笔记)

当请求的微服务宕机,或者响应时间超时,会触发熔断机制,熔断当前请求。Hystrix 是一个供分布式系统使用,提供延迟和容错功能,保证复杂的分布系统在面临不可避免的失败时,仍能有其弹性。1、依赖<!--hystrix依赖,主要是用 @HystrixCommand --><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-st

2020-05-26 12:01:19 124

原创 Nacos服务注册与服务调用(笔记)

服务注册1、依赖<!--服务注册--><dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency>2、配置文件# nacos服务地址spring.cloud.nacos.dis

2020-05-25 21:39:37 2770

原创 PageHelper分页pageSize和total异常问题

分页开启语句必须放到查询语句之前,不然无效。// 开启分页PageHelper.startPage(pageNum, pageSize);// 查询List<Course> courseList = baseMapper.selectByCondition();pageSize等于total的问题是因为在给PageInfo封装值之前进行过多条sql查询,PageInfo会默认对最后一条查询结果进行封装,所以导致最开始的数据丢失,这种情况主要是:查询的数据来自多张表的同时又要做分页,一

2020-05-21 18:35:18 2966

原创 swagger基本使用

swagger用于在开发过程中,对后台功能进行测试。maven依赖<!--swagger--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <scope>provided </scope></dependency><dependen

2020-05-16 18:56:25 158

原创 Nginx基本使用

使用前修改配置文件,找conf文件夹下的nginx.conf文件,再配置文件里找到http,在里面配置路由规则。# 这里是我自己的配置server { listen 9001; # 监听的端口号 server_name localhost; # nginx的访问地址,为本机 # 路由规则 location ~ /edu/teacher/{ proxy_pass http://localhost:8001; } location ~ /edu/oss/{ proxy_pa

2020-05-16 18:43:47 222

原创 使用EasyExcel上传Excel文件,并把数据保存到数据库中

导入阿里巴巴EasyExcel的maven依赖<dependencies> <!-- https://mvnrepository.com/artifact/com.alibaba/easyexcel --> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.1.1&l

2020-05-16 18:15:50 4743

原创 node-sass安装失败解决

在使用vue-admin-template模板时,使用npm install安装package.json文件,很奇怪我明明配置了npm阿里的镜像,结果下载node-sass时还是到github下载,结果下载失败,看官方的解释,node-sass安装失败大多是因为python环境问题,但因为自己是java,所以并没有去安装python,然后更换了node-sass下载路径问题就ok了。失败是因为这个Downloading binary from https://github.com/sass/node

2020-05-12 10:53:25 357

原创 如何获取客户端请求的IP地址

public String getIpAddr(HttpServletRequest request) { String ip = null; try { ip = request.getHeader("x-forwarded-for"); if (StringUtils.isEmpty(ip) || "unknown".equalsIgnoreCase(ip)) {

2020-05-11 15:38:59 642

原创 百度编辑器ueditor实现代码有序排列和颜色高亮

直接在你的文章显示页面加上以下文件<link rel="stylesheet" type="text/css" href="ueditor/third-party/SyntaxHighlighter/shCoreDefault.css"><script type="text/javascript" charset="utf-8" src="ueditor/third-party/SyntaxHighlighter/shCore.js"></script>然后在sc

2020-05-11 15:37:15 243

原创 MybatisPlus使用QueryWrapper类实现条件查询

MybatisPlus使用QueryWrapper类实现条件查询,调用QueryWrapper类的各种方法,并传入相关参数,可以实现条件查询。@Testpublic void testmp() { // 创建QueryWrapper类的对象 QueryWrapper<UserInfo> wrapper = new QueryWrapper<>(); // 设定wrapper // ge表>= // gt表&gt

2020-05-11 15:30:02 4677

原创 丢失更新与悲观锁和乐观锁

丢失更新是指:当有多个人同时提交更新数据时,以最后提交的人的结果为准,之前的人提交的数据就会丢失。解决问题的方案是:乐观锁和悲观锁。悲观锁:串行方式,如果一个人正在操作某个数据,只有当这个人操作完毕,后面的人才可以继续操作。乐观锁:给数据设定一个version,当多个人同时修改数据时,都会获得这个version,当其中一人率先提交数据时,系统会将他的version和被修改数据的version作比较,如果version相同,则修改成功,如果修改成功,则更新该数据的version,这样一来,当其他人提交修

2020-05-11 15:28:18 114

原创 MybatisPlus实现分页

1.添加mp的分页插件@Configuration@Componentpublic class MyConfig { // 将乐观锁加入到容器中,乐观锁生效 @Bean public OptimisticLockerInterceptor OptimisticLockerInterceptor() { return new OptimisticLockerInterceptor(); } // 加入分页插件到容器中

2020-05-11 15:23:37 198

原创 物理删除和逻辑删除

物理删除:直接在硬盘中删除,彻底删除。逻辑删除:并没有真正的删除,只是通过添加一个标志位,通过改变标志位的值,来判断数据是否被删除。MybatisPlus实现逻辑删除:1.实体类属性加上@TableLogic注解// 开启逻辑删除@TableLogic// 开启自动填充@TableField(fill = FieldFill.INSERT)private Integer deleted;2.加入逻辑删除组件// 加入逻辑删除组件到容器中@Beanpublic LogicDelete

2020-05-11 15:21:38 593

原创 MybatisPlus基本使用

1.导入依赖<!-- mp依赖 --><dependency> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> <version>3.2.0</version></dependency> <!-- 会用到配置类 --><depend

2020-05-11 15:16:04 114

原创 使用ThymeLeaf添加和引入公共页面

1,公共页面提取,公共页面一般都是头尾,用th:fragment属性标记公共部分,属性值用来引用<!DOCTYPE html><html xmlns:th="http://www.thymeleaf.org"><head><meta charset="UTF-8"><title>Insert title here</title></head><body> <div th:fragmen

2020-05-11 14:51:41 1559

原创 js实现页面时间跳动

思路:设定一个指定的时间,可以是过去也可以是未来,如果设定成过去的时间,就用当前时间减去设定时间,获得时间戳,然后换算成指定时间格式,然后用setInterval每秒循环一次,就实现了时钟效果。js代码var startTime = new Date("指定时间");setInterval(function(){ var currentTime = new Date(); //var path = currentTime.getTime()-startTime.getTime();

2020-05-11 14:48:07 1313

原创 图片上传到服务器,以及图片不能回显的问题

上传图片工具类public static ResultEntity<String> uploadFileTolocal(InputStream inputStream,String originalName){ try { // 从最后一个点开始截取字符串,包括那个"." String sub = originalName.substring(originalName.lastInd

2020-05-11 14:45:08 1512

原创 使用PageHelper和Pagination插件实现分页

1,导入PageHelper依赖<!-- SpringBoot整合版 --><dependency> <groupId>com.github.pagehelper</groupId> <artifactId>pagehelper-spring-boot-starter</artifactId> <version>1.2.10</version></dependency>

2020-05-11 11:24:26 687

原创 使用阿里OSS服务上传文件

直接来工具类方法,复制即可使用/** * 专门负责上传文件到OSS服务器的工具方法 * @param endpoint OSS参数 * @param accessKeyId OSS参数 * @param accessKeySecret OSS参数 * @param inputStream 要上传的文件的输入流 * @param bucketName OSS参数 * @param bucketDomain OSS参数 * @param origina

2020-05-11 11:21:04 299

原创 如何让select标签里的某个option被选中

<select class="form-control" name="jobType" > <option th:selected="${job.jobType}=='老师'?'true':'false'">老师</option> <option th:selected="${job.jobType}=='程序员'?'true':'false'">程序员</option> <option th:selected="${

2020-05-11 11:18:02 1493 1

空空如也

空空如也

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

TA关注的人

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