自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(45)
  • 资源 (1)
  • 收藏
  • 关注

原创 查询sql中分组后每组中的第一条或者最后一条

select * from(select row_number()over(partition by 【分组列】 order by【排序列】desc/asc) as rownum,*from (SELECT*FROM【表名】)as G1 ) as G where G.rownum =1

2021-11-03 00:38:30 2023

原创 使用SpringCache简化缓存开发(redis)

一、整合1、导入坐标<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-cache</artifactId></dependency>2、写配置①配置使用什么缓存在properties配置文件重写入:spring.cache.type=redis 表示使

2021-10-13 22:14:44 960 1

原创 Mysql(八) 视图

什么是试图?Mysql从5.01版本开始提供视图功能,一种虚拟存在的表,行和列的数据来自自定义视图的查询中使用的表,并且在使用视图时是动态生成的,只保存了sql逻辑,不保存查询结果创建、使用视图创建语法:create view 视图名称 as 查询语句使用语法:select * from 视图名称 where 筛选条件视图的作用重用sql简化复杂sql,不必知道它的查询细节保护数据,提高安全性...

2021-10-13 15:29:43 587

原创 MySql(七) 事务

事务是什么一个或一组sql语句组成的一个执行单元,这个执行单元里面的sql要么都执行,要么都不执行事务的属性原子性原子性指事务时一个不可分割的工作单位,事务中的操作要么都执行要么都不执行一致性从一个正确的状态,迁移到另一个正确的状态.什么叫正确的状态呢?就是当前的状态满足预定的约束就叫做正确的状态.隔离性事务的隔离性是指一个事务的执行不能被其他事务干,即一个事务内部的操作以及使用的数据对并发的其他事务时隔离的,并发执行的各个事务之前互不干扰持久性事务一旦提交,它对数据库

2021-10-11 18:34:43 165

原创 MySql(四) DML语言学习

插入语句方式一:第一个括号输入列名,第二个括号输入结果 (支持多插入)INSERT INTO boys (boyName,userCP) value('男生','女生') ,(’男大大','女大大')方式二:不输入列名,默认全列名INSERT INTO boys value('14','男生','女生'),(15','男生','女生')方式三: 通过set存入某个字段(只能单挑插入)INSERT INTO boys set boyName = '男人'方式四:通过子查询的结果..

2021-10-09 21:48:42 131

原创 MySql(二) DQL语言学习

一、基础查询SELECT语法:select 查询列表 from 表明;1 查询列表可以是表中的字段、常量值、表达式、函数2 查询的结果是一个虚拟的表格查询表字段:SELECT 字段1,字段2 FROM 表名;查询常量值:SELECT 1000;查询表达式 : SELECT 100*9;查询函数 :SELECT CURDATE();取别名 AS方式一(通过AS关键字):SELECT CURDATE() AS "当前时间"; 方式二(字段...

2021-10-08 17:31:55 168

原创 MySql(三) 函数

公式select 函数名()select 函数名(A)from 表 (当函数参数中用到表字段的时候)1、字符函数函数 描述 实例 ASCII(s) 返回字符串 s 的第一个字符的 ASCII 码。 返回 CustomerName 字段第一个字母的 ASCII 码: SELECT ASCII(CustomerName) AS NumCodeOfFirstCharFROM Customers; CHAR_LENGTH(s) 返

2021-10-08 14:54:47 115

原创 MySql(一) 基础知识、法规范、常见指令

一、语法规范不区分大小写,建议关键字大,表名、列名小写 每条命令以分号结尾 注释 : 单行注释 : # 或者 --(空格) 多行注释 : /* */二、常用指令查看Mysql版本SELECT version()查看所有数据库show databases选择某个数据库use (数据库名)查看数据库里的表show tables查看表结构desc (表名)查看当前所使用的数据库SELECT database()...

2021-10-08 11:05:45 88

原创 HttpClient配置SSL绕过https证书

通过httpclient调用https接口的时候出现下面这个错误sun.security.validator.ValidatorException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target意思是调用的时候没有找到相关的证书,无法访问,这时候可以通过绕

2021-09-27 17:13:18 1296

原创 分布式缓存一致性

一、双写模式修改数据库之后,也把缓存的内容修改。缺点:1、但修改完数据库之后还需要查一下数据库,然后把内容封装写入redis,也加重了数据库访问2、暂时的脏数据问题:有两次修改数据库的请求,在第一次修改的时候 由于卡顿问题,第二次修改请求也开始执行,并且修改完缓存,这时候第一次的请求恢复正常,开始修改缓存,就导致了最终的缓存时第一次修改的内容,而数据库内容是第二次修改的内容,出现缓存与数据库不一致现象,但是数据趋于稳定的时候,缓存过期了最终回读到与数据库一直的数据二、失效模式.

2021-09-15 17:20:18 358

原创 Redission作为分布式锁

1、引入依赖<dependency> <groupId>org.redisson</groupId> <artifactId>redisson</artifactId> <version>3.12.5</version></dependency>

2021-09-13 18:43:04 234

原创 Redis(5) Redis持久化操作超详细讲解!!

一、RDB是指在时间间隔内将内存中的数据集快照写入磁盘。Redis会单独创建一个子进程来进行持久化,会先将数据写入一个临时文件中,待持久化都结束了,再用这个临时文件替换上一次持久化好的文件。整个过程中,主进程是不进行任何IO操作的,这就确保了极高的性能,如果需要进行大规模的数据恢复,且对于恢复的完整性不是非常敏感,那RDB方式要比AOF方式更加高效,RDB的缺点是最后一次持久化后的数据可能会丢失...

2021-09-09 19:04:36 677

原创 Docker安装Redis详细教程(含配置文件获取)

一、搜索镜像docker search redis二、拉取镜像,不写版本号默认最新版本docker pull redis三、准备配置文件与容器内进行关联(创建数据卷)1、在/mydata/redis目录下创建conf和data两个文件夹mkdir /mydatamkdir /mydata/redismkdir /mydata/redis/confmkdir /mydata/redis/data2、进入conf文件夹拉去redis的配置文件cd /mydata/r

2021-09-09 09:37:59 1291

原创 Redis(4)Redis事务

Redis事务是一个单独的隔离操作:事务中的所有命令都会被序列化,按顺序的执行,事务在执行过程中不会被其他客户端发来的命令所打断。Redis事务的主要作用就是串联多个命令防止别的命令插队一、Redis事务的三个指令Multi :开始事务 Exec :执行事务 discard :回滚事务 二、事务运行的流程1、multi当输入Multi开始事务之后,会进入’组队‘状态‘ ,这时候开始串联一系列指令下面说明在组队阶段可能发生的事情在这个阶段,所有的指令都不会真正执行,

2021-09-08 16:13:01 2573

转载 Redis(3)Redis配置文件详解

目录2、INCLUDES3、MODULES4、NETWORK5、GENERAL6、SNAPSHOTTING7、REPLICATION8、SECURITY9、CLIENTS10、MEMORY MANAGEMENT11、APPEND ONLY MODE12、LUA SCRIPTING13、REDIS CLUSTER    这里没什么好说的,需要注意的是后面需要使用内存大小时,可以指定单位,通常是以 k,gb,m的形式出现,并且单位不区分大小写。

2021-09-08 15:19:24 379

原创 Redis6 (二)Redis数据类型以及常用指令

redis的数据类型一、String类型String是redis中最基本的数据类型,一个key对应一个value,数据结构为简单动态字符串,是可以修改的字符串,内部结构类似于java的ArrayList,采用预分配冗余空间的方式来减少内存分配频繁,当前字符串实际分配的空间capacity一般高于实际字符串长度len,当字符串长度小于1M时,每次扩容呈翻倍扩容,如果超过1M,扩容一次只会增加1M,最大不超过512MString是二进制安全的,意味着redis的String可以包含任何数据,比如jp

2021-09-08 14:38:52 314

原创 Redis6(一)Redis相关基础知识

一、Redis相关知识介绍1、6379默认端口从何而来?6379在是手机按键上MERZ对应的号码,而MERZ取自意大利歌女Alessia Merz的名字。MERZ长期以来被antirez及其朋友当作愚蠢的代名词2、redis数据库redis默认16个数据库,类似数组下标从0开始,初始数据库默认使用0号。①、选择数据使用select 6 (select+数据库编号) 来选择数据库②、查看当前数据库key数量dbsize③、清空当前库、所有库flushdb、..

2021-09-07 15:53:32 164

原创 缓存穿透、缓存击穿、缓存雪崩问题+解决方案

一、缓存?对于一些经常访问但数据实时性不高且不经常改动的数据,我们希望通过一些方式减少数据库的访问压力,缓存便起到了很重要的作用。 在查询数据之前,我们先通过查询缓存(redis等)获取数据,如果获取到数据,则返回数据,如果获取不到数据,就对数据库进行查询,将查询到的结果先放入缓存中,然后再返回数据,下次再查询时就会从缓存中获取数据,于是大大减少了数据库的压力。 但是对于缓存也会存在许多的问题,常见的就有缓存穿透、缓存击穿、缓存雪崩等。二、缓存穿透...

2021-09-06 14:44:04 139

原创 ElasticSeach脚本以及基于SpringBoot的JavaAPI和解释说明(脚本与elasticsearch-rest-high-level-client JavaAPI文档组合)

一 、SpringBoot整合ElasticSearch二、索引相关(类似数据库)1、创建索引 @Test public void addIndex() throws IOException { //1.使用client获取操作索引对象 IndicesClient indices = client.indices(); //2.具体操作获取返回值 //2.1 设置索引名称 CreateIn...

2021-08-27 13:58:11 438

原创 SpringBoot整合ElasticSearch(elasticsearch-rest-high-level-client)

一、引入maven坐标<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.4.2</version></dependency>二、指定版本 <propert..

2021-08-26 17:08:29 638

原创 Elasticsearch Java Rest Client (Search API)官方文档中文翻译

Search API elasticsearch官方文档一、SearchRequest用于与搜索文档、聚合、建议相关的任何操作,还提供了请求突出显示结果文档的方法1 基本调用SearchRequest searchRequest = new SearchRequest(); //1SearchSourceBuilder searchSourceBuilder = new SearchSourceBuilder(); //2searchSourceBuilder.query(Quer..

2021-08-26 16:06:59 4549 1

原创 使用nginx搭建ik分词器自定义词库

前言:安装了ik分词器相对于来说在中文分词上相对友好,但是对于一些潮流词,或者自定义次是无法完成分词的,所以引入自定义词库,接下来开始步骤一、安装nginx如果没有安装nginx,则点击按步骤按照二、进入html目录,nginx的资源存放在这已和容器挂载,为挂载可以到容器中找到html文件夹/usr/share/nginx/html cd /mydata/nginx/html/mkdir escd es四、新建自定义分词库vi fenci.txt...

2021-08-25 17:24:28 441

原创 docker上安装ik分词器

前言:es本身也自带分词器,但是大多仅对英文比较友好,对于中文一般来说都是一个字一个词,不能实现我们想要的多字词分词,例如”北京天安门“,分词之后是“北”,“京”,“天”,“安”,“门“,所以我们需要手动安装”ik分词器,这款分词器相对于来说对中文分词是比较有好的“,下面进入步骤一、安装elasticsearch如未安装,可点击按步骤安装二、进入github找到ik分词器的下载链接搜索: elasticsearch-analysis-ik,然后点击tags一直找到所需要的版本,.

2021-08-25 16:53:28 3331 4

原创 Docker下安装nginx

一、随便启动一个nginx实例,用于复制出配置(不论本机上有没有nginx都直接执行,如果没有会自动拉取创建)docker run -p 80:80 --name nginx -d nginx:1.10二、创建宿主机nginx文件夹mkdir /mydata/nginxcd/mydata/nginx三、复制配置文件docker container cp nginx:/etc/nginx .可以看到复制文件进入宿主机修改名称为configmv ngin...

2021-08-25 15:40:28 136

转载 elasticsearch查询中文释义、JAVA的API以及kibana上查询

目录目录一、创建表结构:二、ES的各种查询2.1term&terms查询2.1.1term查询(我试了下province没有办法查询,需到后面加个.keyword)2.1.2terms查询2.2match_all&match查询2.2.1match_all2.2.2match查询  2.2.3布尔match查询  2.2.4mulitMatch查询2.3id&ids查询2.3.1id查询2.3.2ids查询2.4prefix

2021-08-24 16:25:58 312

原创 Docker安装Kibana踩坑(无法连接elasticsearch)

在docker下安装elasticsearch、kibana,elasticsearch成功运行并且访问,但是kibana会出现以下报错,大概观察是连接不上{"type":"log","@timestamp":"2021-08-23T08:49:57Z","tags":["warning","elasticsearch","admin"],"pid":7,"message":"Unable to revive connection: http://elasticsearch:9200/"}{"type

2021-08-23 17:16:20 6177 9

原创 Docker下安装ElasticSearch、Kibana( 可视化界面)

一、安装ElasticSearch1、拉取镜像docker pull elasticsearch:7.4.22、创建文件夹mkdir -p /mydata/elasticsearch/configmkdir -p /mydata/elasticsearch/data3、进行配置可外部访问echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml4、创建运行容器.

2021-08-23 16:21:39 1062

转载 SQLSERVER不同数据库联表查询

SQL Server跨库查询 转载,已经标注出处(侵权删)方式一:(多个数据库均在同一个服务器上)语句SELECT * FROM数据库A.dbo.表A a,数据库B.dbo.表B b WHERE a.field=b.field "DBO"可以省略如SELECT* FROM数据库A..表A a,数据库B..表B b WHERE a.field=b.field方式二(数据库在不同服务器上,在一个数据库挂上另一个数据库的外链):...

2021-08-23 10:50:08 6165

原创 JSR303数据校验(四):自定义校验规则

在某些特殊的业务中,现有的校验法则可能会满足不了需求,例如我期望有一个注解校验前端传过来的参数是1或者0的其中一个,若是传其他的则会校验失败,这时候就需要自己自定义校验规则,下面是JSR303的自定义校验规则以下方法是根据自己来看,不知道是不是有其他更好的记忆方法一、新建一个注解类二、代码实现选择类似的一个注解点进去,取出其中较为重要的部分复制进新创的注解类结果如下import javax.validation.Constraint;import java...

2021-08-08 20:08:48 476 2

原创 JSR303数据校验(三)

前言对待数据校验的时候也需要分情况,如一个实体的id字段,在新建对象存入数据库的时候时不需要设置id的(数据库表中id自增的情况下),所以也不需要接受id的值,这时候我们期望传递过来的id时空的,然而在修改字段的情况下,我们需要根据id进行修改,这时候我们时希望参数里id字段是有效的,然后如果在没做处理的情况下,单独设置了id校验,那么会存在一种情况下时出现校验异常的,这时候就需要引入JSR303提供的分组校验功能分组校验在实体类上标注校验注解的时候,可以给groups属性进行赋值,然后在需要校

2021-08-07 11:13:21 97

原创 JSR303参数校验(二):统一异常拦截处理

前言: 在JSR303参数校验(一)中有提到,期望使用JSR303替换原有的‘if‘来实现参数校验以达到精略代码的效果,但是现在看来代码还是没有得到很大的精简(下图所示,仍然需要一系列代码对校验异常的结果进行处理),而我们的注意力应该在意业务逻辑方面的处理而非这些数据校验,为此引入全局ControllerAdvice类拦截异常并统一处理附上异常拦截统一处理代码package com.atguigu.gulimall.product.exception;impo...

2021-08-06 23:02:13 107

原创 JSR303参数校验(一)

比较之前在之前,我对参数进行校验的时候,都是通过StringUtills.isblank方法将参数进行是否为空判断,需要不断的使用if对前端传递过来的数值进行判断以及是很麻烦,更不用说rul,email等格式的判断,并且这对于性能以及代码的美观都是很严重的减分项。现在使用了JSR303做参数校验,发现颇为顺手,再次记下笔记以便以后用时回顾什么是JSR303JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation,Hibernate Validator 是 Bean

2021-08-06 20:56:31 213

原创 最佳实战:oss服务端签名后直传(学习总结,不喜勿喷)

前言:之前做过服务端通过oos原生以及alicloud-oss上传文件,效率不是那么的客观,于是采用在前端上传文件的方法,但是由于 AccessKeyId以及AccessKeySecret直接放在代码总很容易被获取到,安全存在隐患,最终采取服务端获取签名前端直传的方法,都是学习过程总的方法,可能没人懂,因为本人的写博客水平确实很菜,加上技术也就那么回事- -...

2021-08-06 14:48:23 2617 5

原创 乱码问题处理(个人总结,无底层原理,不喜勿喷)

情况一:当从前端通过url传递中文参数到后端出现乱码解决方案:前端href : '${path }/admin/htempchange/viewPage/'+id+'/'+encodeURI(license)+'/'+licensecode+'/'+vin+'/'+'${flag}',通过encodeURI("中文参数")将参数进行url编码后端 request.setAttribute("license", URLDecoder.decode(license,"UTF-8"))

2021-08-05 23:43:05 196

原创 跨域问题处理(学习笔记,不喜勿喷)

一、了解跨域什么是跨域?跨域是指浏览器不能执行其他网站的脚本,它是由浏览器的同源策略造成的,是浏览器对javascript施加的安全限制同源策略?是指协议、域名、端口都要相同,但凡其中一项不相同,都会产生跨域浏览器会将cors请求分成两类:简单请求,非简单请求简单请求:(1) 请求方法是以下三种方法之一:HEAD GET POST(2)HTTP的头信息不超出以下几种字段:Accept Accept-Language Content-Language Last-Ev

2021-08-05 16:32:30 142

原创 java快速使用阿里oss上传对象(从开通oss到javaAPI操作)(仅供自我学习记忆,不喜勿喷)

1、进入阿里官网中搜索对象存储oss2、创建Bucket储存空间3、打开开发者文档(打开之后点击在帮助文档中打开)4、 找到SDK示例->java->安装,然后根据需要选择依赖坐标5、找到需要的API(这里以简单上传为例),将代码拷贝至IDEA中参数说明:1) endpoint填写Bucket所在地域对应的Endpoint。以华东1(杭州)为例,Endpoint填写为https://oss-cn-hangzhou.ali...

2021-08-03 23:24:39 883

转载 SQLSERVER优化(仅供自己学习记忆,不喜勿喷)

SELECT TOP 10[session_id],[request_id],[start_time] AS ‘开始时间’,[status] AS ‘状态’,[command] AS ‘命令’,dest.[text] AS ‘sql语句’,DB_NAME([database_id]) AS ‘数据库名’,[blocking_session_id] AS ‘正在阻塞其他会话的会话ID’,[wait_type] AS ‘等待资源类型’,[wait_time] AS ‘等待时间’,[wait

2021-04-13 09:18:49 164 1

原创 使用tab访问多个相同的jsp导致的数据丢失问题,前端编码后后台解码仍然是乱码

1、确保多个jsp的id唯一,否则就会出现数据丢失问题2、可在前端重复编码,即先编码一次,然后再编码第一次编码后的结果 然后再在后端解码即可

2021-04-08 11:03:53 125

原创 List集合按照某个字段进行排序

代码 List<HTjfxFltjNew> hTjfxFltjNews = new ArrayList<>();Collections.sort(hTjfxFltjNews, new Comparator<HTjfxFltjNew>() { @Override public int compare(HTjfxFltjNew o1, HTjfxFltjNew o2) { return Integer.parseInt(o2.getCjzs())

2021-02-24 11:34:51 598 1

原创 前端el表达式获取后端传来数字型字符串以0充尾数的问题

el表达式获取后端传来数字型字符串不匹配的问题当从后端获取request里的值的时候 如果数字过大 会造成0充尾的问题后端代码 string jylsh="1507242019050800012x"; request.setAttribute("jylsh", jylsh); 前端代码var x = ${jylshh}+"x" alert(x)运行展示图 如图所示 800012x会变成800000 自动以0充尾这时候需要注意的问题就是 (如果数值较小可以不用在意),如果数值较大

2020-12-24 14:04:27 272

jdk777777777777777777777

jdk77777777777777777777777

2021-10-13

空空如也

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

TA关注的人

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