目录

工欲善其事

实践出真知

活跃标签: linux java mysql 待分类 js springboot win10 电路 vue macOS nginx esp32 windows git docker idea maven esp8266 python Arduino

存档:

mysql 聚合函数 (个人收集的)

sum(列名) 求和 max(列名) 最大值 min(列名) 最小值 avg(列名) 平均值 first(列名) 第一条记录 仅Access支持 last(列名) 最后一条记录 仅Access支持 count(列名) 统计记录数 注意和count(*)的区别 group_concat() #统计group by之后的相同字段

JS 的 URL 的编码或解码方法

URL的合法字符 URL的合法字符表示再浏览器的地址栏中不会被转义的字符,有两种: URL元字符:分号(;),逗号(’,’),斜杠(/),问号(?),冒号(:),at(@),&,等号(=),加号(+),美元符号($),井号(#) 语义字符:a-z,A-Z,0-9,连词号(-),下划线(_),点(.),感叹号(!),波浪线(~),星号(*),单引号(),圆括号(()`) 当输入的字符不符合以上的字符时,浏览器就会把该字符转义,规则:根据操作系统的默认编码,将每个字节转为百分号(%)加上两个大写的十六进制字母。 比如:当再浏览器地址栏中输入 www.baidu.com/q=你好时,会被转义成例如 www.baidu.com/q=%E6%98%A5%E8%8A%82类似的字符串,浏览器才会读取。 JavaScript的四个URL编码/解码方法: encodeURI 将元字符和语义字符之外的字符都进行转义,一般用于知道该URL只用于完整的URL时使用 encodeURIComponent 将除了语义字符之外的字符进行转义,包括元字符,因此,它的参数通常是URL的路径或参数值,而不是整个....

python 激活环境的进入和退出

创建 conda create -n cling 激活 source bin/activate 切换环境 conda activate cling 退出 conda deactivate

GitHub 基本的基本用法

git使用 cd existing_folder git init git remote add origin http://112.126.100.212:8099/liguanglei/children-pg-ow.git git remote add origin http://112.126.100.212:8099/liguanglei/children-pg-backstage.git git add . git commit -m "Initial commit" git push -u origin master

js 三种在浏览器储存数据的方法

三种本地存储方式 cookie 前言 网络早期最大的问题之一是如何管理状态。简而言之,服务器无法知道两个请求是否来自同一个浏览器。当时最简单的方法是在请求时,在页面中插入一些参数,并在下一个请求中传回参数。这需要使用包含参数的隐藏的表单,或者作为URL参数的一部分传递。这两个解决方案都手动操作,容易出错。cookie出现来解决这个问题。 作用 cookie是纯文本,没有可执行代码。存储数据,当用户访问了某个网站(网页)的时候,我们就可以通过cookie来向访问者电脑上存储数据,或者某些网站为了辨别用户身份、进行session跟踪而储存在用户本地终端上的数据(通常经过加密) 如何工作 当网页要发http请求时,浏览器会先检查是否有相应的cookie,有则自动添加在request header中的cookie字段中。这些是浏览器自动帮我们做的,而且每一次http请求浏览器都会自动帮我们做。这个特点很重要,因为这关系到“什么样的数据适合存储在cookie中”。 存储在cookie中的数据,每次都会被浏览器自动放在http请求中,如果这些数据并不是每个请求都需要发给服务端的数据,浏览器这设置自....

js 中页面跳转的几种方式和区别

location.href常见的几种形式 self.location.href;//当前页面打开URL页面 window.location.href;//当前页面打开URL页面 this.location.href;//当前页面打开URL页面 location.href;// 当前页面打开URL页面 parent.location.href;//在父页面打开新页面 top.location.href;//在顶层页面打开新页面 注:①如果页面中自定义了frame,那么可将parent、self、top换为自定义frame的名称,效果是在frame窗口打开url地址。 ②此外,window.location.href=window.location.href;和window.location.Reload();都是刷新当前页面。区别在于是否有提交数据。当有提交数据时,window.location.Reload()会提示是否提交,window.location.href=window.location.href;则是向指定的url提交数据. ③用window.open()打开新页面 但是.....

js 将文本以文件的形式上传到服务器

let file; const properties = {type: 'text/plain'}, data = this.code; try { file = new File([data], "file.txt", properties); } catch (e) { file = new Blob(data, properties); } const formData = new FormData() formData.append('file', file, key) postAction(this.url.uploadUrl, formData).then(res => { if (res.success) { } });

Spring boot实现监听Redis key失效事件

开启redis key过期提醒 修改redis相关事件配置。找到redis配置文件redis.conf,只需修改配置文件redis.conf中的:notify-keyspace-events** Ex**,默认为notify-keyspace-events "", 查看“notify-keyspace-events”的配置项,如果没有,添加“notify-keyspace-events Ex”,如果有值,添加Ex,重启redis。 相关参数如图: K:keyspace事件,事件以__keyspace@<db>__为前缀进行发布; E:keyevent事件,事件以__keyevent@<db>__为前缀进行发布; g:一般性的,非特定类型的命令,比如del,expire,rename等; $:字符串特定命令; l:列表特定命令; s:集合特定命令; h:哈希特定命令; z:有序集合特定命令; x:过期事件,当某个键过期并删除时会产生该事件; e:驱逐事件,当某个键因maxmemore策略而被删除时,产生该事件; A:g$lshzxe的别名,因此”AKE”意味着所有....

Docker安装RabbitMQ

查看镜像 docker search rabbitmq:management 拉取镜像 docker pull docker.io/macintoshplus/rabbitmq-management 查看镜像 docker images 制作容器并启动 docker run -d --hostname fuyi-rabbit --name rabbitmq -e RABBITMQ_DEFAULT_USER=guest -e RABBITMQ_DEFAULT_PASS=guest -p 15672:15672 -p 5672:5672 c20 参数说明 -d #后台运行 -- homename fuyi-rabbit #主机名 RABBITMQ_DEFAULT_USER=guest #可视化界面登录用户名 RABBITMQ_DEFAULT_PASS=guest #可视化界面登录密码 -p 15672:15672 #端口映射 c20 #镜像ID 启动成功 docker ps -a 登录访问 http://ip:15672/ 用户名密码为 : guest

linux 查询出指定文件并删除

linux查找符合条件的文件并删除 找到根目录下所有的以test开头的文件并把查找结果当做参数传给rm -rf命令进行删除: find / -name “test*” |xargs rm -rf find / -name “test*” -exec rm -rf {} ; rm -rf $(find / -name “test”) 如果想指定递归深度,可以这样: find / -maxdepth 3 -name “.mp3” |xargs rm -rf find / -maxdepth 3 -name “test” -exec rm -rf {} ; rm -rf $(find / -maxdepth 3 -name “test”) 这样只会查找三层目录中符合条件的文件并删除掉!

Linux下hydra的使用

Syntax: hydra [[[-l LOGIN|-L FILE] [-p PASS|-P FILE]] | [-C FILE]] [-e nsr] [-o FILE] [-t TASKS] [-M FILE [-T TASKS]] [-w TIME] [-W TIME] [-f] [-s PORT] Parameter: -R 继续从上一次进度接着破解 -S 大写,采用SSL链接 -s 小写,可通过这个参数指定非默认端口 -l 指定破解的用户,对特定用户破解 -L 指定用户名字典 -p 小写,指定密码破解,少用,一般是采用密码字典 -P 大写,指定密码字典 -e 可选选项,n:空密码试探,s:使用指定用户和密码试探 -C 使用冒号分割格式,例如“登录名:密码”来代替-L/-P参数 -M 指定目标列表文件一行一条 -o 指定结果输出文件 -f 在使用-M参数以后,找到第一对登录名或者密码的时候中止破解 -t 同时运行的线程数,默认为16 -w 设置最大超时的时间,单位秒,默认是30s -v / -V 显示详细过程 server 目标ip service 指定服务名....

linux 进程常用命令

查看进程启动时间 ps -o lstart -p PID 删除指定名字的说有进程 ps -ef | grep $1 | grep -v grep | cut -c 9-15 | xargs kill -s 9

linux 安装mvn环境

1、下载 wget https://mirrors.tuna.tsinghua.edu.cn/apache/maven/maven-3/3.6.3/binaries/apache-maven-3.6.3-bin.tar.gz 也可以在浏览器去maven官网下载需要的版本,这里安装的是二进制包,所以选择“-bin.tar.gz”结尾的包 2、解压 tar -xf apache-maven-3.6.3-bin.tar.gz -C /usr/local/ mv /usr/local/apache-maven-3.6.3/ /usr/local/maven3.6/ 3、加入环境变量 在/etc/profile文件最下方加入新的一行 export PATH=$PATH:/usr/local/maven3.6/bin 添加完后,执行 source /etc/profile,让配置生效 验证: 执行 which mvn 显示/usr/local/maven3.6/bin/mvn就说明配置成功了 4、JAVA环境 运行maven需要Java环境----系统安装有jdk,并且在系统中配置了JAVA_......

Mysql 全局查找

查询数据库的表 SELECT * FROM information_schema.TABLES WHERE TABLE_SCHEMA like 'child%';

js 数组操作

添加元素 push [].push("1") 添加单个元素 [].push(...['1','2','3']) 添加一个数组 元素获取 最简单的方法 Array[index] 获取最后一个 一、JavaScript pop() 方法 pop() 方法用于删除并返回数组的最后一个元素。 var arr = new Array("js","JavaScript","jQuery"); var end = arr.pop() console.log(end);//jQuery console.log(arr);//["js", "JavaScript"] 注意: pop() 方法将删除 arrayObject 的最后一个元素,把数组长度减 1,并且返回它删除的元素的值。如果数组已经为空,则 pop() 不改变数组,并返回 undefined 值。 二、数组的 length 属性 var arr = new Array("js","JavaScript","jQuery"); var end = arr[arr.length-1] console.log(end);//jQuery 三....

策略模式 在 SpringBoot 中使用

场景:当我们接收到一些数据需要对其进行处理时,由于它们来自于不同的渠道(如:腾讯,头条),不同渠道所需的处理方式不同,下面我们写一个简单Demo来实现该的场景。 解决思路 实例一:简单举例 首先构建一个 GeneralChannelRule 基础规则抽象类,定义一个抽象方法process(),不同的渠道都需要实现该抽象方法。 public abstract class GeneralChannelRule { public abstract void process(); } 编写一个腾讯的规则类,定义具体对于腾讯渠道数据的处理逻辑 public class TencentChannelRule extends GeneralChannelRule @Override public void process() { // Tencent处理逻辑 } } 编写一个头条的规则类,定义具体对于头条数据的处理逻辑 public class TouTiaoChannelRule extends GeneralChannelRule @Override public void process(......

Springboot 参数校验

@Valid 用于验证注解是否符合要求,直接加在变量user之前,在变量中添加验证信息的要求,当不符合要求时就会在方法中返回message 的错误提示信息。 @RestController @RequestMapping("/user") public class UserController { @PostMapping public User create (@Valid @RequestBody User user) { System.out.println(user.getId()); System.out.println(user.getUsername()); System.out.println(user.getPassword()); user.setId("1"); return user; } } 然后在 User 类中添加验证信息的要求: public class User { private String id; @NotBlank(message = "密码不能为空") private String password; } @NotBlank 注解所指的 ......

git 强制拉取

该方法会强制覆盖本地代码,也就是放弃本地修改 git fetch --all git reset --hard origin/master git pull git fetch是将远程主机的最新内容拉到本地,用户在检查了以后决定是否合并到工作本机分支中。 git pull 则是将远程主机的最新内容拉下来后直接合并,即:git pull = git fetch + git merge,这样可能会产生冲突,需要手动解决。 Git分支相关 创建分支 git branch (branchname) 切换分支 git checkout (branchname) Git提交与修改 git add 添加文件到仓库 git status 查看仓库当前的状态,显示有变更的文件。 git diff 比较文件的不同,即暂存区和工作区的差异。 git commit 提交暂存区到本地仓库。 git reset 回退版本。 git rm 删除工作区文件。 git mv 移动或重命名工作区文件。

JS数组/对象转字符串互转

JavaScript | 字符串转对象三种方法 JSON.Parse() 在这次使用 JSON.Parse()的时候报错,Unexpected token {in JSON at position 217362,经过查资料发现,类似的报错还挺多的,比如 Unexpected token < in JSON at position 0,比如 Unexpected token ' in JSON at position 1。 eval() eval()函数可以执行任何的 JavaScript 代码,所以其实蛮危险的,容易被插入恶意脚本 const jsonStr = '{name:"orange",age:18}' console.log(eval("(" + jsonStr + ")")) 使用函数 其原理就是通过拼接字符串,然后在 Function 创建一个匿名方法然后调用。 const jsonStr = '{name:"orange",age:18}' console.log(new Function("return " + jsonStr)) 对象转字符串 JSON.s......

js 面试题

JS 中一个方法在调用的时候写括号和不写括号有什么区别 以test()和test为例 1.无括号 test表示的函数指针,通俗的理解就是等待某个特定的位置后执行,而不是立马执行。这也是使用计时器中正确的写法。 2.有括号 test()表示执行方法test,此时计时器的作用就没有了,由于加了括号,就相当于调用了一个方法,而不是启动了一个计时器。 JavaScript中属性和方法名称的下划线前缀有什么作用 约定而已