自定义博客皮肤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)
  • 资源 (2)
  • 收藏
  • 关注

原创 MYSQL使用的索引不合适,指定索引

公司有个user_main表 结构如下索引如下慢sqlSELECT * FROM user_main WHERE updateTime >= '2021-09-08 01:30:02.01' AND updateTime <= '2021-09-10 01:30:01.664' AND RIGHT(userId,1) = 2 AND userId>10000 ORDER BY userId ASC LIMIT 1000;指定索引FORCE INDEX (i...

2021-09-13 22:28:21 281

原创 win10系统下如何查看端口被哪个进程占用

在win10系统中,我们有时候要使用一些端口,可是却发现使用的端口被别的程序占用了,导致无法开启端口,但是却不知道如何查看端口被哪个进程占用,方法很简单那,这就给大家讲解一下win10系统下查看端口被哪个进程占用的具体步骤查询端口号对应的进程号 netstat -aon|findstr "80" 使用tasklist命令查看进程 tasklist|findstr "进程编号" 然后,可以用taskkill语句结束进程,可能需要管理员权限才能正常的结束语句;

2021-03-26 10:19:30 283

转载 几分钟看懂Base64编码原理

Base64简介Base64是基于64个可打印字符(小写字母a-z,大写字母A-Z,数字0-9,符号"+","/" 再加上作为垫字的"=",实际有65个字符,其他的所有字符都要转换成这个字符集中的字符),用来表示任意二进制数据的方法。Base64使用缘故在二进制数据的传输中,常常包含很多无法显示和打印的字符,想要他们正常显示出来,就需要一个二进制到字符串的转换方法。Base64就是一种最常见的二进制编码方法。 常见应用就是Base64用于在HTTP协议下传输数据。由于HTTP协议是超文本传输协议

2020-11-26 10:19:08 480

原创 @Pattern 为空字符串的时候,不需校验正则表达式

问题 ,使用 @Pattern 注解 在用户 传入 空字符串 ""的时候 也会执行 校验 。租赁类型为非必填项, 当前端 传的 carType:""时 执行了校验如果字段为空,如何告诉系统忽略约束? 这是可选字段,如果它不是空的,我只想验证它解决方法有两种方法1:将空字符串的匹配项添加到正则表达式中 ,如下,修改正则表达式 加^$| @Size(max = 2, message = "carType长度错误") //在service判断 @Pattern...

2020-07-01 09:34:53 15744

原创 IDEA 2019.3.4 plugins 插件搜索不到结果 的解决方法

ctrl+alt+s 打开设置 ,搜索框输入plugins,点击plugins,点齿轮按钮,选择HTTP Proxy settings,勾选 Auto detect proxy settings;勾选 Automatic proxy configuration URL:输入:http://127.0.0.1:1080点重启idea即可可参考下图:...

2020-04-10 11:32:37 3601 2

原创 解决easyUI 序号 超过四位数 显示不全的问题

作为后端开发,测试提了如下bug,很是无语。网上查了下原因:Datagrid中当你的行数据超过9999时,第一列的行号rownumber将会因为表格内容过长而导致无法显示全部数字,这一点Easyui无法做到自适应 所以需要进行修改,这里扩展一个方法就行了解决方法:将如下代码放到公共js里,然后在$(“#dg”).datagrid()的onLoadSuccess方法中调用...

2020-03-06 15:46:05 540

原创 idea2019.03中tomcat中文乱码

找到idea的安装目录,打开以下文件,在文件末尾添加 -Dfile.encoding=UTF-8 如果idea是2019.3版本,去bin目录打开idea.exe.vmoption记事本修改文件是不被idea认可的 ,只能通过idea打开进行配置HELP->Edit Custom VM OPtions中加 -Dfile.encoding=utf-8 ...

2020-01-19 14:45:48 693

原创 查看java编译后的class版本

1.使用subline打开class文件。编码方式选择,以16进制方式显示只看第一行数据,前面8个字节CA FE BA BE是固定的,之后4个字节00 00 是次版本号,次版本号后面的4个字节00 33 是jdk的版本号jdk版本号对应关系如下:...

2019-12-13 11:44:03 222

原创 linux下 cat grep快速查找内容

部署在Linux下的程序,日志很多,而且实时滚动,可以通过以下方式快速查找自己自己想要的内容:在log.txt文件中,查找ERROR字符,并显示ERROR所在行的之后5行cat log.txt | grep 'ERROR' -A 5之前5行cat log.txt | grep 'ERROR' -B5前后5行cat log.txt | grep 'ERROR' -C5...

2019-12-03 10:01:25 2350

转载 mybatis 3.1.1 输出sql日志

# 设置root logger日志打印级别为INFO,日志输出到STDOUT这个appender中log4j.rootLogger=INFO,STDOUT# 定义stdout这个STDOUT,其实现类为ConsoleAppender.表示日志输出到控制台中,读者可以使用其他appender,如DailyRollingFileAppenderlog4j.appender.STDOUT=org...

2019-11-27 09:18:34 548

转载 手把手教你如何玩转消息中间件(ActiveMQ)

来源https://blog.csdn.net/Cs_hnu_scw/article/details/81040834

2019-11-09 17:12:34 160

转载 linux less常用命令

目录1.> 直接查看文件 2.> 带出行号查看文件 3.> 查找内容 4.> 实时查看文档变动(实时滚动文档)一般程序部署在Linux环境,查看日志时,一般用less满足大部分的需求。列举、记录最常用的场景,代码以Tomcat日志文件catalna.out为例。1. > 直接查看文件less catalina.out查看文件后...

2019-11-09 15:48:29 167

转载 前端访问不到本地图片,IDEA设置Tomcat虚拟路径

案例说明:数据库可以存储图片,但是相当耗费内存,怎么办呢?在数据库中存储图片的相对路径,访问资源时使用相对路径访问。两种方法1:图片存储在项目内,使用相对路径访问,该方法使用简单,但是,这样会造成项目体积急剧增大,可移植性变差,也不安全。2:图片存储在单独的容量大的外存,使用绝对路径读取图片。当启动一个部署在Tomcat的Web项目时,可以访使用相对路径或者绝对路径访问到项目内的资...

2019-11-09 13:24:06 2610

转载 IntelliJ IDEA 下的svn配置及使用的非常详细的图文总结

原文链接:https://blog.csdn.net/qq_27093465/article/details/74898489

2019-10-09 23:39:13 107

转载 springboot自定义参数解析HandlerMethodArgumentResolver

springboot自定义参数解析HandlerMethodArgumentResolver0.5272018.08.29 19:23:04字数 177阅读 9440自定义解析器需要实现HandlerMethodArgumentResolver接口,HandlerMethodArgumentResolver接口包含两个接口函数:public interface HandlerMeth...

2019-09-22 23:55:57 532

转载 cas原理分析

CAS原理分析在JDK 5之前Java语言是靠synchronized关键字保证同步的,这会导致有锁(后面的章节还会谈到锁)。锁机制存在以下问题:(1)在多线程竞争下,加锁、释放锁会导致比较多的上下文切换和调度延时,引起性能问题。(2)一个线程持有锁会导致其它所有需要此锁的线程挂起。(3)如果一个优先级高的线程等待一个优先级低的线程释放锁会导致优先级倒置,引起性能风险。vo...

2019-09-05 19:39:02 2057

原创 SpringBoot三种获取Request和Response的方法

出去面试,被问到这个问题,竟然没回答出来。写个博客记录一下

2019-09-01 00:37:22 5801

转载 Java四种线程池的使用

Java通过Executors提供四种线程池,分别为:newCachedThreadPool创建一个可缓存线程池,如果线程池长度超过处理需要,可灵活回收空闲线程,若无可回收,则新建线程。newFixedThreadPool 创建一个定长线程池,可控制线程最大并发数,超出的线程会在队列中等待。newScheduledThreadPool 创建一个定长线程池,支持定时及周期性任务执行。newS...

2019-08-28 23:21:43 116

转载 面试官:你们是如何解决分布式事务问题的?

参考:https://www.cnblogs.com/zengkefu/p/5742617.html# 面试官心理分析只要聊到你做了分布式系统,必问分布式事务,你对分布式事务一无所知的话,确实会很坑,你起码得知道有哪些方案,一般怎么来做,每个方案的优缺点是什么。现在面试,分布式系统成了标配,而分布式系统带来的分布式事务也成了标配了。因为你做系统肯定要用事务吧,如...

2019-08-23 22:41:42 8312 3

原创 策略模式

在策略模式(Strategy Pattern)中,一个类的行为或其算法可以在运行时更改。这种类型的设计模式属于行为型模式。在策略模式中,我们创建表示各种策略的对象和一个行为随着策略对象改变而改变的 context 对象。策略对象改变 context 对象的执行算法。优点:1、算法可以自由切换。 2、避免使用多重条件判断。 3、扩展性良好。缺点:1、策略类会增多。 2、所有策略...

2019-08-23 22:36:23 281

转载 Oracle事务隔离级别

来源:https://blog.csdn.net/leozhou13/article/details/50449965脏读(dirty read):当一个事务读取另一个事务尚未提交的修改时,产生脏读。不可重复读(nonrepeatable read):同一查询在同一事务中多次进行,在此期间,由于其他事务提交了对数据的修改或删除,每次返回不同的结果。幻读(phantom ...

2019-08-18 20:06:21 560

转载 ArrayList和CopyOnWriteArrayList

这篇文章的目的如下:了解一下ArrayList和CopyOnWriteArrayList的增删改查实现原理 看看为什么说ArrayList查询快而增删慢? CopyOnWriteArrayList为什么并发安全且性能比Vector好1. List接口首先我们来看看List接口,因为ArrayList和CopyOnWriteArrayList都是实现了List接口,我们今天主要是研究增...

2019-07-25 11:28:07 151

原创 PageHelper中PageInfo成员属性详解

/** * 对Page<E>结果进行包装 * <p/> * 新增分页的多项属性,主要参考:http://bbs.csdn.net/topics/360010907 * * @author liuzh/abel533/isea533 * @version 3.3.0 * @since 3.2.2 * 项目地址 : http://git.oschina.net...

2019-07-04 11:26:59 4153 2

转载 关于Java多线程及线程池的使用

来源:https://mp.weixin.qq.com/s/TF04dB-i0q0-dOTqlprmYA在项目里面为了提高性能往往会在主线程里面开启一个新线程去执行,这种做法最方便快捷,但是当用户量数据上涨,很显然每次去开启新的线程服务器往往会吃不消,这时就需要线程池来管理和监控线程的状态。创建多线程的三种姿势java 多线程很常见,如何使用多线程,如何创建线程,java 中有三...

2019-07-04 11:26:04 221

原创 于ArrayList和LinkedList的索引问题

LinkedList集合中的元素也是有序的,有索引,为什么和ArrayList相比查找比较慢,增删快呢?我们打个比方:LinkedList和ArrayList中都装了10个人。在ArrayList集合中的10个人是这样的:Arraylist中本身就有标号0,,,,2,3,,4........。每个人都站在一个标号上,比如我要找4号,我说4号出来,站在4号的人,一看自己的位置标号,就知道叫的...

2019-06-27 16:55:35 1643

转载 数据库设计三大范式

数据库设计范式什么是范式:简言之就是,数据库设计对数据的存储性能,还有开发人员对数据的操作都有莫大的关系。所以建立科学的,规范的的数据库是需要满足一些规范的来优化数据数据存储方式。在关系型数据库中这些规范就可以称为范式。什么是三大范式:第一范式:当关系模式R的所有属性都不能在分解为更基本的数据单位时,称R是满足第一范式的,简记为1NF。满足第一范式是关系模式规范化的最低要求,否...

2019-06-22 14:54:43 150

转载 Spring事务详细解释,满满的都是干货!

前言Spring在TransactionDefinition接口中规定了7种类型的事务传播行为。事务传播行为是Spring框架独有的事务增强特性,他不属于的事务实际提供方数据库行为。这是Spring为我们提供的强大的工具箱,使用事务传播行可以为我们的开发工作提供许多便利。但是人们对他的误解也颇多,你一定也听过“service方法事务最好不要嵌套”的传言。要想正确的使用工具首先需要了解工具。本文...

2019-06-12 23:48:47 175

转载 恢复IDEA中的Un-inject Language/Reference

问题描述在学MyBatis时,在IDEA环境下,Mapper映射文件中有一个地方总是误报:使用Alt+Enter快捷修复时,出现了这个选项:按下它即做了快捷修复,此后确实不再误报了,但是带来了更严重的问题。首先这个文件里SQL的语法高亮不见了,其次SQL完全没有语法检查了(也就更没有关键字提示了),一片白的SQL非常容易写错,宁愿误报也不想出现这种状况。但是因为是...

2019-06-09 01:25:45 2753

转载 Oracle中merge into的使用

我们操作数据库的时候,有时候会遇到insertOrUpdate这种需求。如果数据库中存在数据就update,如果不存在就insert。以前的时候,需要额外select查询一下,如果有数据就update,如果没有数据就insert。而现在Orcale数据库都提供了 MERGE 方法来处理这种需求。MERGE 命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据。M...

2019-06-06 01:17:37 119

转载 Sql语句中IN和exists的区别及应用

表展示    首先,查询中涉及到的两个表,一个user和一个order表,具体表的内容如下:    user表:        order表:      in    确定给定的值是否与子查询或列表中的值相匹配。in在查询的时候,首先查询子查询的表,然后将内表和外表做一个笛卡尔积,然后按照条件进行筛选。所以相对内表比较小的时候,in的速度较快。    具体sql...

2019-05-31 17:01:02 121

转载 Oracle分析函数-nulls first/nulls last

select * from criss_sales;通过rank()、dense_rank()、row_number()对记录进行全排列、分组排列取值但有时候,会遇到空值的情况,空值会影响得到的结果的正确性,如下所查。select dept_id ,sale_date ,goods_type ,sale_cnt ,rank(...

2019-05-28 16:29:13 353

转载 Oracle wm_concat()函数

oracle wm_concat(column)函数使我们经常会使用到的,下面就教您如何使用oraclewm_concat(column)函数实现字段合并如:shopping:-----------------------------------------u_id goods num---------------------...

2019-05-27 22:24:19 8231

转载 ORACLE更新数据时如果有就更新没有就插入的三种实现

1.这个看不懂第一行的 if (这么查询失败,无效sql)​if 1>0theninsert into 表名(ID,NAME) VALUES (1,'AA');elseupdate 表名 set NAME='BB' where ID=1;end if​2.这个好理解beginupdate 表名 set NAME='BB' where ...

2019-05-19 18:39:48 6534

转载 OVER(PARTITION BY)函数介绍

简介  开窗函数,Oracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是:对于每个组返回多行,而聚合函数对于每个组只返回一行。  开窗函数指定了分析函数工作的数据窗口大小,这个数据窗口大小可能会随着行的变化而变化。  下面的测试用例数据语句如下: View Code  1、over函数的写法:  over(partition...

2019-05-18 16:37:15 9356

原创 jwt实现一个帐号只能同时在一个设备(端)登录的思路

jwt的规范目前只检测jwt的发布者,过期时间,签名等信息.大部分现成的库都是按照标准写的.但是标准没有要求jwt带入登录时间等信息,因此用户连续登录多次,后台返回的token在有效期内都能访问后台api.也就是用户可以在多个设备同时登录.有人会采用在登录时将jwt用redis等储存起来,在api的中间件检查时去查数据库中是否储存了这个token,设置过期时间.如果用户再次登录,那么将该tok...

2019-05-05 14:17:33 19544 7

转载 认识JWT

1. JSON Web Token是什么JSON Web Token (JWT)是一个开放标准(RFC 7519),它定义了一种紧凑的、自包含的方式,用于作为JSON对象在各方之间安全地传输信息。该信息可以被验证和信任,因为它是数字签名的。2. 什么时候你应该用JSON Web Tokens下列场景中使用JSON Web Token是很有用的:Authorization(授权...

2019-05-04 19:55:36 272

原创 数据库设计原则

数据库设计原则是:1. 为提高读的性能,尽可能把写的操作拆分到另一张表,因为对表的更新操作会导致锁表,会降低数据表的读取的性能。2. 交易时一些关联信息可能在后来会被修改或删除,如商品、收货地址等,因此要在订单中记录交易时的商品信息和收货地址,一边后来商品或收货地址被删除的时候,依然能在历史订单中看到快照信息。3. 不要怕拆分成很多表,读的时候多张表关联读取,会比读取一张字段非常多的数据量...

2019-03-26 11:59:15 222

转载 oracle 子查询中null的问题(in 和 not in)

先看一下员工表:SELECT * FROM p_emp e 例子:查询员工表中不是领导的员工按正常逻辑思维:SQL语句应该为:SELECT * FROM p_emp e WHERE e.empno NOT IN (SELECT mgr FROM p_emp)但是输出结果为空,没有返回值再看:SELECT * FROM p_emp e WH...

2019-03-12 11:56:34 734

转载 【Mybatis之缓存】

许多应用程序,为了提高性能而增加缓存, 特别是从数据库中获取的数据. 在默认情况下,mybatis 的一级缓存是默认开启的。类似于hibernate, 所谓一级缓存,也就是基于同一个sqlsession 的查询语句,即 session 级别的缓存,非全局缓存,或者非二级缓存. 如果要实现 mybatis 的二级缓存,一般来说有如下两种方式:1. 采用 mybatis 内置的 cache...

2019-02-22 14:28:14 86

转载 关于Mybatis的@Param注解

Mybatis 作为一个轻量级的数据持久化框架,目前(2018)的应用非常广泛,基本可以取代Hibernate。关于 @param 这个注解的使用,作者这里整理了一些笔记。关于Mybatis @Param 注解,官方文档: http://www.mybatis.org/mybatis-3/zh/java-api.html其中关于 @param部分的说明是:@Param    Parame...

2019-02-20 10:54:00 288

Java8 Stream学习

Java8 Stream教程,简单易懂

2021-01-05

JD-GUI一款java反编译软件。

可以将class文件反编译成java类文件 》

2017-09-21

空空如也

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

TA关注的人

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