摘要:

很多大数据计算都是用SQL实现的,跑得慢时就要去优化SQL,但常常碰到让人干瞪眼的情况。 比如,存储过程中有三条大概形如这样的语句执行得很慢: select a,b,sum(x) from T group by a,b where …; select c,d,max(y) from T grou
阅读全文
摘要:案例: 将下面提供的List做处理,打印出以下输出 : {a=[{a=1111}, {a=111}, {a=11}, {a=1}], b=[{b=222}, {b=22}, {b=2}], c=[{c=3}, {c=1}]} 或 {a=[a=1111, a=1...
阅读全文
摘要:Stream 常用操作 allMatch 使用给定的 Predicate 检查 Stream 中的所有元素,全部都通过检测则返回 true,否则 false 。 System.out.println(Stream.of(1,2,3).allMatch(n ->...
阅读全文
摘要:2019-06-13 19:27:14.603 ERROR 13744 --- [ restartedMain] .d.e.r.s.AbstractElasticsearchRepository : failed to load elasticsearch ...
阅读全文
摘要:报错原因: 网上说法统一,ElasticSearch为了安全起见,不允许以root用户登录,切换其他系统用户即可。 解决方案一: 就是创建一个额外的用户,并赋予权限,然后切换这个用户来运行ElasticSearch。 解决方案二: 以管理员身份运行...
阅读全文
摘要:为什么 Hashtable的 ‘t’ 不是大写的,为什么不遵循驼峰命名? 不了解的可以去搜一搜了哈哈... 据说是在java jdk 1.0版本的时候遗留的bug,但是为了兼容...
阅读全文
摘要:-这文章蛮有意思的,果断选择分享+散播+推广 三连- 程序命名 容易输入的名字。比如:Fred,asdf单字母的变量名。比如:a,b,c, x,y,z(如果不够用,可以考虑a1,a2,a3,a4,….)有创意地拼写错误。比如:SetPintleOpening,...
阅读全文
摘要:package com.soelegant.elegantdemo.util;/** * @Author:JCccc * @Description: * @Date: created in 15:31 2019/6/12 */public class Snow...
阅读全文
摘要:以下介绍实战中数据库框架使用的是mybatis,对整合mybatis此处不做介绍。 使用pageHelper实现分页查询其实非常简单,共两步: 一、导入依赖; 二、添加配置; 那么开始, 第一步: pom.xml添加依赖: com.g...
阅读全文
摘要:事务控制一般在一些比较重要的业务都需要考虑。 进入正题,关于事务Transactional 的要点以及使用方式: @Transactional 1.需要将使用事务注解的方法设置为public; 2.如果没有在注解后做异常配置,只会对手动抛出的 throw...
阅读全文
摘要:import org.apache.commons.codec.binary.Base64;import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;/** * @Author JCc...
阅读全文
摘要:获取yml的可以参考这篇: Springboot 指定获取出 yml文件里面的配置值 https://blog.csdn.net/qq_35387940/article/details/106209485 直接进入正题, 先创建一个 配置文件test_...
阅读全文
摘要:一般我们默认创建完springboot后,配置文件是放在当前根目录里面的。 其实,很残酷的是,这种默认的读取配置方式是4种方式里面优先级最低的。 那么那些优先级最高呢,4种方式我们按照优先级最高的一个个介绍下: 第一种, 当前项目根目录下的config目录下(...
阅读全文
摘要:这里简单介绍下springboot整合webFlux(入门) ,使用netty通信。 首先是创建一个springboot项目,这里就不介绍怎么创建了。 接下来是导入依赖包: org.springframework.boot spri...
阅读全文
摘要:正则表达式校验工具类; import java.util.regex.Pattern;/** * @Author:JCccc * @Description: 常用正则表达式校验工具类 * @Date: */public class RegExUtil { ...
阅读全文
摘要:出现此问题只是idea自身检测的问题,这不是bug,不影响项目运行。 去除该情况的红色波浪线:
阅读全文
摘要:com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure The last packet sent successfully to the serv...
阅读全文
摘要:错误如下: Description: An attempt was made to call the method com.google.gson.GsonBuilder.setLenient()Lcom/google/gson/GsonBuilder; ...
阅读全文
摘要:前言 嗯,今天如题,给大家介绍下最最最简单的实现excel导入导出的功能,功能简单叙述: 导入:读取本地的excel表格,将里面的内容都插入对应的数据库表(批量插入) 导出:读取数据库表内容,将其导出到excel文件 进入正题前,还是啰嗦一下,为啥要做一个这样...
阅读全文
摘要:今天来介绍下一个我觉得蛮不错的设计模式(比较容易应用于业务场景),它就是---模板设计模式。 OK,我们直接看代码: 模板模式,那当然我们需要建一个模板先,建一个抽象类,VehicleControlModel.java: (这里我们使用一个不同车辆进行不同...
阅读全文
摘要:为了帮助初学者学习(毕竟当初也是这么过来,在网上就想找一篇傻瓜式教程,一步步地照着去学习),我们从零开始一步一步整合Mybatis、连接MYSQL数据库及配置druid连接池。 开始吧! 首先,创建一个springboot项目,在依赖勾选时,如下: 接着点n...
阅读全文
摘要:以下为mybatis-config里面可以配置的各个设置项的介绍(并非每一项都需要配置,在spirngboot项目里,不做任何配置也是可以的,因为有默认的配置): 1. 2. ...
阅读全文
摘要:import java.io.UnsupportedEncodingException;import java.util.Iterator;import java.util.Map;import java.util.Set;import java.util.S...
阅读全文
摘要:import org.springframework.util.StringUtils;import java.util.Map;import java.util.Random;import java.util.TreeMap;/** * @Author: J...
阅读全文
摘要:import java.io.UnsupportedEncodingException;import java.security.MessageDigest;import java.security.NoSuchAlgorithmException;/**...
阅读全文
摘要:可以用于远程调用POST方式接口,GET方式接口,且里面包括了跳过SSL验证方法 。 并且在常用的方法下,有注释掉的调用举例: import com.alibaba.fastjson.JSONObject;import org.apache.commons.l...
阅读全文
摘要:回调,其实就是有个回应的那种感觉。 那么,接下来,我们就用消息推送的场景,简简单单地讲解下回调函数的使用。 直接看代码, 先创建一个回调接口, MessageCallBack /** * @Author : JCccc * @CreateTime : 2019...
阅读全文
摘要:这次介绍责任链模式,采用最普遍的请假例子来编码实现。 先给列出个模拟的需求, 一个人请假,调用一个接口,传入的参数是他请假的天数。 然后,请假的天数----> 如果小于2天,由直属领导之间审批就OK; ...
阅读全文
摘要:(建议初学者把这个系列前面的都看看,那对于redis的基本使用操作及一些消息的订阅分布都是没问题的了) Redis,一个缓存数据库。不仅仅是能用于对数据的CRUD,也可以作为一个消息中间件,用来进行消息的分发和订阅。 话不多说,我们直接进入代码part: 使用...
阅读全文
摘要:今天给大家分享这个吧。 利用Springboot中的session监听器去实现统计在线用户数量的需求(当然其实用shiro或者security是框架自己带有会话管理的,用起来更加方便)。 但是, 接下来这个是非常简单直接快速的实现这个需求,不废话了 上代码: ...
阅读全文
摘要:单例模式,很多种方式实现,但是这儿只介绍最优方案。 就是利用内部类去实现单例模式。 这种单例模式的好处就是,延迟加载,减少内存开销,访问成本低且线程安全。 直接上代码: /** * @Author : JCccc * @CreateTime : 2018-11...
阅读全文
摘要:这是为了个人的方便,也同时为了大家能更好地了解与使用获取时间的各种方法。 不 废 话, 上 代 码 : import org.springframework.util.Assert;import java.time.Clock;import java...
阅读全文
摘要:1、造成线程阻塞的方法? 阻塞线程的方法:join、yield、sleep 和Object的wait()方法 2、Java的守护进程(后台进程)? 设置线程为后台进程运行:setDaemon(true) 如果一个进程中只有后台线程在运行,这个进程就会结束。 3...
阅读全文
摘要:ACID特性 数据库管理系统中事务(transaction)的四个特性(分析时根据首字母缩写依次解释):原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability) 所谓事务,它是一个操作序...
阅读全文
摘要:栈, 取值是先进后出 ,后进先出。 那么怎么能按照队列方式(先进先出)存值后取值呢? 看以下代码: import java.util.Stack;/** * @Author : JCccc * @Description : * @Point: Keep a g...
阅读全文
摘要:HttpClient 4.3。HttpClient这货和Lucene一样,每个版本的API都变化很大,这有点让人头疼。就好比创建一个HttpClient对象吧,每一个版本的都不一样, 3.X是这样的 ? 1 HttpClient httpClient=ne...
阅读全文
摘要:【基于fastjson】 如果你想让一个实体类里面的某些属性不参与转换成为json字符串,那么 使用@JSONField 就很舒服。 废话不多说,我们看代码!!!! 如: User实体类,我在 age 属性上面使用了这个注解@JSONField import...
阅读全文
摘要:一起来看看关于fastjson的各种骚操作吧! 看完这个基本对于json数据的解析、转换各种都木有问题了! 1.前言 1.1.FastJson的介绍: JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是...
阅读全文
摘要:com.google.code.gson gson 2.8.2 对数据的操作: import com.google.gson.Gson;import com.google.gson.GsonBui...
阅读全文
摘要:如果你有一个东西, 你想别人触碰它的时候,不能同时触碰,需要按照你想要的每次多少人来触碰。 算了,不做比喻了,代码原理其实也简单,我们直接先看代码,我再做简单的解释(估计不用看解释也能懂): package com.semaphore.controller;i...
阅读全文
摘要:该文章原作者为版权声明: https://blog.csdn.net/vinfly_li/article/details/...
阅读全文
摘要:首先,导包。 在pom.xml文件里面加入以下: org.springframework.boot spring-boot-starter-data-redis org.springframework.session spring-sessi...
阅读全文
摘要:工具类: import javax.servlet.http.HttpServletRequest;import java.net.InetAddress;import java.net.UnknownHostException;/** * @Author ...
阅读全文
摘要:是的,笔者最近开始磨磨蹭蹭学起了这个Angular(等我系统性学习后,后面的博客估计会有很多关于Angular的东西了,当然后端开发依然是我的主打)。 Angular版本确实可以说是更新飞快了(能不能稳定点???)。我就是很拼,用的7版本, 然后boot...
阅读全文
摘要:Unable to save settings: Failed to save settings. Please restart WebStorm。 Unable to save settings: Failed to save settings. Pleas...
阅读全文
摘要:1)直接在controller层方法中传入request对象参数:通过该方法得到的request对象是不同的,是线程安全。 (2)自动注入::通过该方法得到的request对象是不同的,是线程安全。 (3)通过在controller基类中进...
阅读全文
摘要:在网上找了很多很多资料,使用多线程、异步线程等等,很多配置,方法也多多; 那么,我向来都是以简单,够用为目标,下面我介绍的就是我认为已经非常非常简单的异步线程使用的方法了。 说到简单,当然是使用注解。 进入正题: 先上个目录结构: 好了,我们这次是在sp...
阅读全文
摘要:一直使用System.out.println()的我终于在今天从良了,我决定开始使用log了。 好了,不废话了,进入正题(先介绍日志简单使用,再介绍全局异常捕获及根据异常类型处理,不想看日志使用的直接看后面。) 前言: 我在学习这个日志打印的时候,在网上浏...
阅读全文
摘要:自动设置生成serialVersionUID方法如下: (设置完后,继承下Serializable,然后按Alt+Enter 快捷键 ,add就OK) (快捷键不一样的话,那你鼠标对着波浪线,用自己的快捷键就好)
阅读全文
摘要:创建一个springboot项目 然后pom.xml文件:(从pom文件里面可以看出,就一个包导入就可以了。) 4.0.0 com.jc mongodemo 0.0.1-SNAPSHOT jar mongodemo Demo pr...
阅读全文
摘要:最近无意间发现好多人搬了这个简单的cookie使用文章,大家搬文章的时候,可以先跟我说一声,互相尊重下。 不过知识分享推广这个是好的!欢迎大家一起分享! 做了个简简单单的小例子去记录一下,怎么使用这个Cookie,虽然现在用了shiro去管控登录,里面用的是t...
阅读全文
摘要:不废话,直接上解决方案: 在springboot的启动类@SpringBootApplication上做点改动,如下: @SpringBootApplication(exclude = DataSourceAutoConfiguration.class)p...
阅读全文
摘要:昨天还好好的,今天打开项目,发现就一直在刷刷刷啊,自己搁那一直刷新。 然后不吐槽了,解决方案如下:
阅读全文
摘要:如果想了解动态调度定时任务可以看我这篇: https://mp.csdn.net/console/editor/html/107038022 该篇属于入门级使用。 说到简单, 实现定时器的方法其实蛮多, 我个人在探索了一下之后,任务,最简单的就是注解了。...
阅读全文
摘要:properties格式: # REDIS (RedisProperties)# Redis数据库索引(默认为0)spring.redis.database=0# Redis服务器地址spring.redis.host=localhost# Redis服务...
阅读全文
摘要:RedisConfig.java : 对redis提供的两个Template的序列化配置 /** * @Author: JCccc * @CreateTime: 2018-09-11 * @Description: */import com.f...
阅读全文
摘要:这里介绍的是redis中使用各种方式存/取值: import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;import com.sun.scenario.effect.imp...
阅读全文
摘要:import com.fasterxml.jackson.annotation.JsonAutoDetect;import com.fasterxml.jackson.annotation.PropertyAccessor;import com.fasterx...
阅读全文
摘要:import java.time.Clock;import java.time.Instant;import java.time.LocalDateTime;import java.time.ZoneId;import java.time.format.Dat...
阅读全文
摘要:在文章开始前先说下,2.5版本的servlet时需要在web.xml做相关配置的,而3.0注解之后,是不用的。 也就是这个区别, 最近在学习使用的时候,遇到了些小麻烦,几经波折终于解决了,所以在此做个学习备忘记录。 在eclipse 创建servlet 时,因...
阅读全文
摘要:关于防盗链 Referer String ref=request.getHeader("Referer"); //判断请求头中的referer是否为空或者没东西或者不来自163网站,那么就是盗链行为,直接重定向到原网页 if(ref=...
阅读全文
摘要:方法例子都是亲自实践过的,作为知识共享。如果有更好的或者说不足之处请多多指点。 首先先明确,java里我目前了解获取得到当地系统时间的方法有四个: a. new Date().getTime(); b. System.currentTi...
阅读全文
摘要:报错内容如下: nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.XXX.XXX 直...
阅读全文
摘要:Error Code: 1175 You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column MySQL Workb...
阅读全文
摘要:JAVA ServletContext或者ServletCxxxx()等方法使用,打印内容出现2次的情况 我在网上也查了很多,各种方法都试过了。 什么修改日志啊,什么tomcat重启两次啊等等情况; 最后,其实就是在tomcat的webapps的文件夹...
阅读全文
摘要:servlet servlet 的request 和response request: 从服务器得到的请求 response:我们给服务器传递的数据信息 生命周期,每当一个servlet在第一次被访问的时候, 服务器就会创建servlet的对象,然后调用i...
阅读全文
摘要:select *from emp where deptno= (select deptno from emp where ename="smith") 这是查询出与smith同一部门的员工信息。 --------------------------------...
阅读全文
摘要:插入排序方法类 public void sort(int arr[]){ for(int i=1;i=0&&insertVal<arr[index]) { //上面的判断思想是,先确认i...
阅读全文
摘要:org.hibernate.hql.ast.QuerySyntaxException: unexpected token: * near line 1, column 8 [select *from Employee]org.hibernate.hql.ast...
阅读全文
摘要:struts-config.xml中的元素有严格的顺序,如果元素的顺序出错,系统会抛出一个错误,描述如下:The content of element type "struts-config" must match "(display-name?,descr...
阅读全文
摘要:Sql Server 中一个非常强大的日期格式化函数常用: Select CONVERT(varchar(100), GETDATE(), 23): 2006-05-16 Select CONVERT(varchar(100), GETDATE(), 0)...
阅读全文
摘要:QSQ SQL server的 char、nchar、varchar、nvarchar的区别及使用 (1) 定义: char: 固定长度,存储ANSI字符,不足的补英文半角空格。 nchar: 固定长度,存储U...
阅读全文
摘要:sqlserver中cast,convert,datepart,left,right这三个函数的使用讲解 这几个函数其实网上资料很多,但是为了方便自己的记忆,我还是决定还是写一下,都说好记性不如烂笔头,所以还是多写一下。 cast()函数作用主要是:把一...
阅读全文
摘要:Hibernate openSession() 和 getCurrentSession的区别 getHiberanteTemplate 、getCurrentSession和OpenSession 采用getCurrentSession()创建的S...
阅读全文
摘要:true com.mysql.jdbc.Driver root root jdbc:mysql://loca...
阅读全文
摘要:getParameter得到的都是String类型的。或者是用于读取提交的表单中的值(http://a.jsp?id=123中的123),或者是某个表单提交过去的数据; getAttribute则可以是对象Object,需进行转换,可用setAttribut...
阅读全文
摘要::在下面一行加上一条黑线 :换行 : 标签定义段落。元素会自动在其前后创建一些空白。浏览器会自动添加这些空间,您也可以在样式表中规定。 : 标签规定粗体文本。 : 一行 : 一列 表格是html中经常使用到的,简单的使用可能很多人都...
阅读全文
摘要:前言 硬着头皮看看... 这些都是发现在一些项目里面的一些代码片段。 正文 案发现场: 数组里面很多数据,在调试数据的时候,想打印下来,核对数据正确性。 作案手法: 盘问: 来自我的质问: 我刚刚看你那个数组遍历打印是做啥的?作案...
阅读全文
摘要:前言 硬着头皮看看... 这些都是发现在一些项目里面的一些代码片段。 正文 案发现场: 数据库里面的时间查询出来的格式是 ,"yyyy-MM-dd HH:mm:ss" 这样的。 但是第三方接口要我们变化格式返回给他们,现在是变成这样,"yyyy...
阅读全文
摘要:前言 硬着头皮看看... 这些都是发现在一些项目里面的一些代码片段。 正文 案发现场: 现在查询出来很多用户信息,但是第三方那边接口一个要全部人名,一个要全部用户id。 作案手法(不算作案): 友好交流: 我: 嗯。 作案人(握紧...
阅读全文
摘要:前言 硬着头皮看看... 这些都是发现在一些项目里面的一些代码片段。 正文 案发现场(不算作案): 用一堆订单信息放在一个list里面,但是里面有很多重复的订单,现在避免订单通知发货重复,需要简单去重下。 作案手法(不算作案): 友好交流...
阅读全文
摘要:前言 硬着头皮看看... 这些都是发现在一些项目里面的一些代码片段。 正文 案发现场: 用户账号注册进来,数据插入数据库后,需要取出新增的id作为用户id使用。 作案手法: 盘问: 来自我的质问: 你干嘛又查一遍啊?作案人...
阅读全文
摘要:前言 硬着头皮看看... 这些都是发现在一些项目里面的一些代码片段。 正文 案发现场: 就是从第三方接口那边收到了一些订单信息,然后经过一些业务逻辑之后,需要新增两个额外的参数再去使用。 作案手法: 盘问: 来自我的质问: 你为啥不直接用原来...
阅读全文
摘要:看代码: //将带有T的时间字符串转换成yyyy-MM-dd HH:mm:ss public static String convertDate(String strDate) { String str = ""; t...
阅读全文
摘要:前言 当你搜到这篇文章,我感觉多半是因为对接了.NET的相关接口。 在C#里面,使用HttpUtility.UrlEncode(xxx); 出来的值,% 后面的字母是小写的; 而在java里面,URLEncoder.encode(xxx, "utf-8"); ...
阅读全文
摘要:前言 shiro是一个轻量级的权限框架,该篇我将会从0到1快速教大家搭建出一套包含角色,权限登录校验的项目。 就算你没了解过,也能学会。跟着我把代码敲一遍,这个项目就是属于你的。 该篇文章比较啰嗦,篇幅较长,如果不是入门的初学者大可不必从头开始阅读(我一般的教...
阅读全文
摘要:windows环境 许久后,启动rabbitmq,发现以前创建的Virtual host在本地链接出错了。 网上有很多解决方案,但是我逐一实验了,对于我来说,根本没效。 我的解决方案是: 删除掉这个Virtual host ,重新创建一个 rabb...
阅读全文
摘要:如题,这种场景其实项目里使用场景很多,经常需要进行这种对象值的复用,但是又怕使用不准确,影响到原对象的值。 那么该篇文章介绍一个方法,简单粗暴,就是使用BeanUtils。 所以我们使用的是: 简单示例: Dog,里面有两个字段(构造方法,se...
阅读全文
摘要:前言 该篇为redis使用系列的第六篇,在springboot整合redis基础上使用BloomFilter 布隆过滤器。 至于布隆过滤器的作用和实现的简单原理,该篇不做讲述,还不了解的可以先看我这篇 《JAVA 你应该有所了解的布隆过滤器》https:/...
阅读全文
摘要:前言 最近接手的老项目也不少,我在看老项目的代码的时候,顺便看到同事敲代码, 无聊问到同事,这个类为啥要实现序列化? 你看有些类没序列化不是嘛,但是有些又序列化了,为啥? 为啥你现在新建的也序列化? 你知道序列化有啥用么? 一串连问后,得到了短暂的宁静。 ...
阅读全文
摘要:该篇文章之所以出现,是有感而发。如有意见不一,可以随意发表,理性探讨,勿攻击。 最近几天面试java岗位也有几十来个人,岗位招聘是1-3年,也有简历是4,5年的,对于所谓的3年,到了我这一步筛选简历的时候,其实我可以看出来很多都是刚毕业的。 但是很多人依然都...
阅读全文
摘要:该篇文章内容: 1.实现标题中提到的接口限流 2.使用压测工具jmeter给大家展现验证效果 第一部分,代码的实现 首先是导入依赖包: cn.yueshutong spring-boot...
阅读全文
摘要:以前写过一篇基于Springboot使用retry框架进行实现重试业务场景的文章: https://blog.csdn.net/qq_35387940/article/details/99676114 前言: 重试这个需求场景在我们做项目的时候非常常见,实...
阅读全文
摘要:回顾场景: 确认sql语句没有问题,可以在数据库查询出来 3条数据, 但是通过代码查询出来List集合,看到数量是对的,但是里面的数据全部为空null: 问题分析: 查询没报错,集合数量正确,具体数据为null,就像有时候某个字段没对上,单独那个...
阅读全文
摘要:首先是确认使用的AOP的代码没有错,然后在你的扫描xml里加上: 因为很多项目都只配置了扫描service,controller这些,所以很容易漏掉开启扫描AOP的配置。
阅读全文
摘要:在日常搬砖的日子里,对参数判空是司空见惯的一个环节。 如以下的这种接口: @GetMapping("/getMyParam") public void test(@RequestParam Map paramMap) { Strin...
阅读全文
摘要:今天给别人拉项目的时候,出现了如标题的这个问题。 不多说,解决方案: 进入项目的设置,可以看到 src 是显示灰色的, 那么我们选中 src 文件夹, 然后再选择 Sources ,将它变成蓝色 : 然后最好关掉项目,再重新打开,就好了。...
阅读全文
摘要:public static void main(String[] args) throws Exception { String timeBegin="2020-04-01"; String timeEnd="2020-04...
阅读全文
摘要:记得当初上大学,读的专业是计算机科学与技术,学的东西非常杂, 毕竟大学是提供方向,深入得看个人。 当时在大一接触到的语言,有C,有C++,有汇编。 学的细节过程没有多少记忆了,但是依然记得那时候大家在上汇编课的时候,基本都是反应难,难,难。 为什么标题...
阅读全文
摘要:布隆过滤器: 我说它不存在,它 百分之两百 不存在! (我说它存在,可能我有说错的时候...) 前言: 该篇文章将会使用最精简易懂的文字以及小图来给大家介绍讲解(不对哈希策略计算进行详解) 一.布隆过滤器有啥用? 二.布隆过滤器原理是什么? 三.java中...
阅读全文
摘要:下面我推荐这种方式: public static void main(String[] args) { double test1=10.2234; double test2=10.3356; double ...
阅读全文
摘要:示例,使用了分页插件返回的结果数据: { "pageNum":1, "pageSize":50, "size":1, "startRow":1, "endRow":1, "total":1, "pages":1, ...
阅读全文
摘要:import java.text.ParseException;import java.text.SimpleDateFormat;import java.util.*;/** * @Author : JCccc * @CreateTime : 2020/3/...
阅读全文
摘要:一般我们转成Integer ,平常使用的是 Integer.valueOf 或者是 Integer.parseInt ; 而这两种方法是转换纯数字字符串的时候才能正常使用,一旦字符串带有小数,就会报错,如: 报错: Exception in thread...
阅读全文
摘要:ElasticSearch 相比搜到这篇文章的人,都已经有过对它的了解, 一种流行的企业级搜索引擎,是一个分布式,高性能、高可用、可伸缩的搜索和分析系统。 那么用我粗俗的言语来说,它就是提供一个存储数据的地方,然后搜索起来很快,特别是联想搜索,也就是模糊查...
阅读全文
摘要:个人遇到问题场景复盘: 一直项目部署启动都是很快来着,然后今天改了功能,在接口出使用了HttpSession,重新部署后,发现项目启动特别慢! 一直怀疑是不是启动报错,但是等了个几分钟又能正常启动,就是每次重启都非常慢! 认真一看日志,里面的耗时找到了...
阅读全文
摘要:问题原因: 出现这个错误其实根本原因tomcat是不同版本导致的。 解决方案, 不需要换版本! 只需要在当前tomcat的 conf文件下的server.xml 文件编辑, 找到 加上 secretRequired="" 如: ...
阅读全文
摘要:前言 看到标题,可能小伙伴们会虎躯一震?嗯?难道不应该使用Redis做缓存? 答: 不是你想的那样, 只是说,有几种情况,使用缓存我们需要了解考虑周全,选择正确的使用姿势。 正文 好,我们进入该篇正题。 (一定要耐心结合我举例进行推演才能更...
阅读全文
摘要:首先大家都清楚,Mybatis里面传参方式分别有使用 #{} 和 ${}。 对于使用$符存在安全问题的,该篇不做分析和介绍(其实就是如果传参的话,使用$需要手动拼接‘ ' ,这就存在注入的风险) 接下来,进入正题,通过简单举例介绍, #{} 第一种情...
阅读全文
摘要:使用 $ 符 如在mapper.xml里面的使用: 在mapper层就把这个表名当做普通的参数传入即可: 同理,其实如果真的使用了$ ,在不考虑安全的范畴里面,也可以把一些手动拼接的sql语句作为参数传入。 想了解更多的mybatis的...
阅读全文
摘要:不多说,进入正题: mapper里,使用注解@Param分被给实体类取名,以及给其他参数也取名: List> queryRechargeDetail(@Param("rechargeVo") RechargeVo rechargeVo,@Param...
阅读全文
摘要:问题: 看着打印出来的执行sql语句,传入的时间是正确的,但是一到数据库就不对。 解决方案: 在连接 mysql的链接后面加上时区,设置为咱们东八区时间。 &serverTimezone=GMT%2B8
阅读全文
摘要:1. File -> Project Setting -> Project : 2. File ->Project Setting -> Modules 3. File -> setting -> 搜索 Java Compiler ...
阅读全文
摘要:default 这个关键字,说实话平时见到的场景很少,使用的也不多。 印象中有用到的时候,1.switch case 这个就是用在最后,所有条件都不匹配,默认进行处理; 2.自定义注解会有用到,给予一个默认值; 3. 就是咱们这篇里介绍的,在接口中使用这个关...
阅读全文
摘要:问题场景: 访问接口,发现拦截器执行了2次。 一个普通接口: 问题排查分析: 通过debug可以发现,之所以拦截器执行了2次, 第一次是正常的对接口 /myTest进行拦截; 第二次而是, 对/favicon.ico这个 进行的拦截, 这个是访问的运...
阅读全文
摘要:个人认为下列列出来的都是版本较为突出的特性 Java 5 1.引入泛型功能(伪泛型) 2.增强循环,可以使用迭代循环,Iterator 3.支持自动装箱和自动拆箱 4.支持类型安全的枚举 5.支持可变参数 6.支持静态引入 7.支持元数据(注解)功能 8...
阅读全文
摘要:首先在开篇前,先放一个Springboot简单使用定时器的文章:SpringBoot 定时器简单使用,实现任务调度_小目标青年的博客-CSDN博客 那当然还有一篇稍微高级点的,动态调度: Springboot Quartz定时任务的动态调度使用,实战详解_小目...
阅读全文
摘要:这里不介绍遍历的方法,介绍的是使用这个提供的方法: org.apache.commons.beanutils.ConvertUtils 上代码: String arrayStr="1901,1902,1903,1094";Integer[] inte...
阅读全文
摘要:还原现场: List agentTeamIdsList =Arrays.asList(agentIdArray); agentTeamIdsList.add(123011); 将一个Integer类型数组转成Lis...
阅读全文
摘要:DateUtil: import java.text.ParseException;import java.text.SimpleDateFormat;import java.time.Instant;import java.time.LocalDateT...
阅读全文
摘要:CookieUtil: public class CookieUtil { // 默认缓存时间,单位/秒, 2H private static final int COOKIE_MAX_AGE = 60 * 60 * 2; // 保存路径,根...
阅读全文
摘要:如: 解决方案: 1. 在引用的js的地方加上置顶字符编码, charset="UTF-8" 2. 在IDEA的tomcat配置里加上运行环境参数, -Dfile.encoding=UTF-8
阅读全文
摘要:SortUtil: import java.util.Arrays;/** * @Author : JCccc * @CreateTime : 2020/2/01 * @Description : **/public class SortUtil { ...
阅读全文
摘要:只要涉及到其他周的天,都算期间的周数: static int calculate(Calendar c){ int dayForWeek; if(c.get(Calendar.DAY_OF_WEEK) == 1){ ...
阅读全文
摘要:上代码: public static List getCycleList(int cycleNum,String startTime,String endTime) throws ParseException { System.out...
阅读全文
摘要:上代码: public static List getMonthBetween(String minDate, String maxDate) throws Exception { // ArrayList result = new Arra...
阅读全文
摘要:出现这种情况, 按照步骤尝试下: 1. 先不动配置, 检查是否存在事务重叠开启的情况,就是接口开了事务,里面方法还开了事务,而且事务有冲突。 2.在你的数据连接url后面加上 &pinGlobalTxToPhysicalConnection=tru...
阅读全文
摘要:出现这个错误,不慌。 这是druid强制关闭连接,打印出来的。 那么为什么会强制关闭连接, 因为这2个参数: 如果你出现这个错误,影响到了你的业务,数据,那么你可以考虑把这个超时时间适当延长; 如果你出现这个错误,没有影响到你的业务,那么你大可不必管...
阅读全文
摘要:前言: springboot整合多数据源,大家肯定不陌生,方式不一,但是相信大家整合多数据源,如果涉及到事务,都会非常烦恼,多数据源的事务不是冲突就是失效,而如今网上千篇一律的老年博客,想找到真正解决问题的,非常少。所以我决定出来分享下可用的整合方案,而且是从...
阅读全文
摘要:出现以下错误: 在检查数据库连接信息都不存在任何问题的情况下, 是因为版本的问题,springboot2.1.x版本默认的mysql-connector-java 版本比较高 8.0.x ; 降版本可以解决: mys...
阅读全文
摘要:请慢用,如果对你有帮助,就留个言,点个赞。 ConversionUtils.java 包含:自增id转换方法MD5+BASE64转换方法 import lombok.extern.slf4j.Slf4j;import org.apache.commons....
阅读全文
摘要:如题,一般我们普遍采用的协调方式: 多个参以“,”拼接传递即可 如: 那么除了这样,我们还能怎么协调呢? 其实对应get请求,springmvc内部是已经支持了这种以“,”逗号拼接的方式,也就是说,传参方式不变,但是我们后台接收的时候,可以不用...
阅读全文
摘要:这里我选取作为比较的例子是, 在一个url后面拼接参数。 关于拼接参数, 无非就几种,一种就是String的 ‘+’ ,一种就是StringBuilder.append(StringBuffer.append) ,还有就是String.format。 先来...
阅读全文
摘要:简单说下,MyBatis-plus为我们提供了默认的增删改查和一些基础使用的条件查询等。 直接进入代码环节, pom.xml 的核心依赖包: org.springframework.boot s...
阅读全文
摘要:这个实例的登录模块大概简单包含以下三个小功能: 用户注册 用户输入帐号密码,后台使用Spring Security的BCryptPasswordEncoder 进行密码加密,存库。 用户登录 用户输入帐号密码,后台查库使用Spring Security的BCr...
阅读全文
摘要:这种密码带有特殊符号,在启动项目的时候,读取yml配置会报错。解决方案: 带上单引号即可!
阅读全文
摘要:早些年,那会把一个老项目的登录模块重构,从Shiro转Spring Security,那时候快速换完后没多看,最近又在公司做类似同样的操作,给一个老项目加上Spring Security。所以我决定简单写点什么。 相信用过Spring Security的伙伴们...
阅读全文
摘要:0x00 漏洞背景 2019年9月5日,fastjson在commit 995845170527221ca0293cf290e33a7d6cb52bf7上提交了旨在修复当字符串中包含x转义字符时可能引发OOM的问题的修复。 360CERT 判断该漏洞危害中。影...
阅读全文
摘要:在日常做项目里,不管是本地调试阶段还是线上正式部署运行阶段, 我们常常需要对接口的被调用做一些参数打印,为了更清晰地去联调以及确认数据。 实现这种场景,无疑第一时间想到的就是aop,配合注解的方式使用,这样确实是个好办法,而且还能更加自由地去监控打印请求接口日...
阅读全文
摘要:首先使用StringRedisTemplate存入一个String,带有过期时间: int expires_in=3600;stringRedisTemplate.opsForValue().set("test","hello",expires_in, Tim...
阅读全文
摘要:List gameList=new ArrayList();//把实体里面的gameId单独抽取出来List gameIdList = gameList.stream().map(e -> e.getGameId()).collect(Collectors....
阅读全文
摘要:主要内容让rtmp或hls的协议流直播视频能在html页面正常显示(这里也是综合参考了网上其余的资料,最终放出下面这些实测可用的方案)。 首先是HLS协议流, 这种是播放m3u8格式的视频。 解决方案: 新建html页面, testHls.htm...
阅读全文
摘要:原文链接:https://blog.csdn.net/hollis_chuang/article/details/102657937 数据库查询相信很多人都不陌生,所有经常有人调侃程序员就是CRUD专员,这所谓的CRUD指的就是数据库的增删改查。 在数据库的增...
阅读全文
摘要:File -> Setting -> Inspections -> General -> Duplicated Code 设置为不打勾√即可。
阅读全文
摘要:public static File MultipartFileToFile(MultipartFile multiFile) { // 获取文件名 String fileName = multiFile.getOrigin...
阅读全文
摘要:这里主要介绍使用yml去配置静态资源路径,会由简单慢慢到详细地去介绍怎么使用yml来配置静态资源 示例: 单独配置了静态资源的访问路径 ,这个配置项相当于重新定义该项目的静态资源文件夹路径 spring: resources: static-lo...
阅读全文
摘要:以前写过一篇教程,Springboot AOP方式切换多数据源(主从两库类似情况使用最佳): https://blog.csdn.net/qq_35387940/article/details/100122788 网上大多流传的springboot系列的切...
阅读全文
摘要:如果还不知道springboot怎么使用JPA的,先参考这篇 Springboot快速整合JPA实现增删查改:https://blog.csdn.net/qq_35387940/article/details/102541311 接下来回到正题 示例场景,...
阅读全文
摘要:该篇只介绍关于对一个实体类内字段属性做参数校验。 因为我个人觉得加入拦截器AOP那种校验和直接对controller添加@Validated的这些方式,其实很多老项目是无法融入的,涉及到架构变改了。 而对一个实体类内字段属性做参数校验这种方式,是可以不动...
阅读全文
摘要:关于springboot整合jpa:https://blog.csdn.net/qq_35387940/article/details/10254131 jpa使用@Query 多表关联、传参:https://blog.csdn.net/qq_35387940...
阅读全文
摘要:如果仅仅想看到sql语句和参数就完事了,可以参考这篇就足矣: https://blog.csdn.net/qq_35387940/article/details/102561244 这篇里面我们最终要实现的效果是: 日志里面直接输出的SQL语句是带上传入的参数...
阅读全文
摘要:如果还没使用过JPA的可以去先看我这篇:https://blog.csdn.net/qq_35387940/article/details/102541311 这篇文章里我所采取的是使用Map来 替代 关联的接口,网上很多都是为了关联A B两个表,选择新建A&...
阅读全文
摘要:简单看看JPA依赖包的主要成分,可以看到里面有个熟悉的框架 hibernate: 不多说,直接开始整合。 这次快速整合示例的目录结构: 先创建一个springboot项目,在pom.xml中加入依赖: org.spri...
阅读全文
摘要:在该篇文章开始前,我先说一句: 本人觉得,了解下阔以,实用性不大。 好,接下来我们来一起编码: 首先我们是基于IDEA(如果你是用Eclipse,你直接跳过这设置环节完后看就行),要实现热部署的前提就是,我们修改代码,要让项目自动重新编译。那么IDEA里面就需...
阅读全文
摘要:我们直接结合代码来讲解, 创建一个SimpleTestDemo.java,在里面分别调用三个子线程(三种编写方式,其实都一样): public class SimpleTestDemo { public static void main(Strin...
阅读全文
摘要:前言:使用HashMap,我们可以不写resultMap,不写实体类。 OK,我们直接进入实战案例,准备一个springboot+mybatis的项目(如果没搞懂springboot+mybatis的,可以参考我这篇https://blog.csdn.ne...
阅读全文
摘要:开始敲代码前,先简单介绍下大致的想法实现: 生成验证码: 提供一个接口, 这个接口里,我们将生成的验证码存入session,然后将验证码以图片格式或者base64编码串返回给调用端。 校验验证码: 提供一个接口,这个接口里,我们收到调用端传过来的校验码,然后从...
阅读全文
摘要:function: 如果返回mobile则代表是移动端,如果返回pc则是电脑端。 /** * //判断是否手机设备 * @return boolean */function is_mobile_request(){ $_SERVER['ALL_HTTP']...
阅读全文
摘要:1.查看tomcat是否运行: ps -ef|grep tomcat 2.直接杀掉当前tomcat进程(停止tomcat) kill -9 11234(进程id) 3.启动tomcat cd /data/tomcat/xxxxdemo/bin (进入tomc...
阅读全文
摘要:一、 数据库登录 (root为用户名,输入以下命令后,按回车再输入对应的密码即可) mysql -uroot -p 或者 mysql -h主机地址 -u用户名 -p用户密码 二.、退出数据库 quit 和 exit或ctrl + d 三、数据库操作...
阅读全文
摘要:"; function getIpAddress(){ //ip是否来自共享互联网 if (!empty($_SERVER['HTTP_CLIENT_IP'])){ $ip_address = $_SERVER['HTTP_CLIENT_IP'];...
阅读全文
摘要:在PHP里面,判断两个字符串是否一致,推荐使用strcmp($a,$b)方法: $result="fail"; if (strcmp($result,"success" )==0) { //相等 echo("success"); ...
阅读全文
摘要:前排说重点:关键方法在context.php文件里,有关于第三方接口调用的方法 function api_execute。 主要是在传递参数时,如果选择json格式传递,需要做相关处理; 然后在api_execute方法里,也需要做参数的相关格式设置。 首...
阅读全文
摘要:之前写了两篇操作多数据源的,不过是基于SSM框架的 (SSM最简单的操作多数据源: https://blog.csdn.net/qq_35387940/article/details/99324108) (SSM最灵活的操作多数据源:https://blog....
阅读全文
摘要:在我们操作批量插入的时候,最直接的就是传入list进行批量插入(拼接sql),那么以这种方式进行批量操作,如果在数据量特别大的情况下,拼接的sql 的packet数据包大小是非常大的,也是很难预估的。 批量插入可以参考上篇文章:(https://blog.cs...
阅读全文
摘要:上代码(Service和ServiceImpl 省略): 1. 批量插入: Mapper层: int insertList(List list); 对应的mapper.xml: insert into users( id, name ...
阅读全文
摘要:PS:UNSIGNED 代表是无符号, 例如 INT 或 INTEGER : -2147483648 - 2147483647 , 那么INT UNSIGNED 或 INTEGER UNSIGNED :0 - 4294967295 ,也就是只有正的,无负...
阅读全文
摘要:max_allowed_packet :server接受的数据包的大小 在执行数据量较大的SQL语句,如果超过了默认限制(有的是1M有的是4M),就会报错,提示这个packet大小不足。 查看当前max_allowed_packet: mysql> show...
阅读全文
摘要:之前写过一篇极易上手的操作多数据源(https://blog.csdn.net/qq_35387940/article/details/99324108),基本看了就能整合实现多数据源了。 当前这篇文章,区别为,我们将会把多个数据源的信息放在一张数据库配置...
阅读全文
摘要:重试,在项目需求中是非常常见的,例如遇到网络波动等,要求某个接口或者是方法可以最多/最少调用几次; 实现重试机制,非得用Retry这个重试框架吗?那肯定不是,相信很多伙伴手写一下控制流程的逻辑也可以达到重试的目的。 那么用Retry的好处是什么? 简单来说...
阅读全文
摘要:Caused by: com.mysql.jdbc.PacketTooBigException: Packet for query is too large 出现这个错误,其实就是你拼接的sql语句太长了,因为的mysql默认接收是不能大于1M的; 解决方案...
阅读全文
摘要:这是一篇介绍悲观锁和乐观锁的入门文章。旨在让那些不了解悲观锁和乐观锁的小白们弄清楚什么是悲观锁,什么是乐观锁。不同于其他文章,本文会配上相应的图解让大家更容易理解。通过该文,你会学习到如下的知识。 1.锁(Lock) 在介绍悲观锁和乐观锁之前,让我们看一下什么...
阅读全文
摘要:在项目开发里面,多数据源是最普遍不过的,一个项目使用多个数据库是非常正常的,那么这篇就是基于SSM框架去轻松实现使用多数据源的实战场景。 基于SSM框架(还不了解SSM的的可以参考:https://blog.csdn.net/qq_35387940/artic...
阅读全文
摘要:前言, 该篇SSM整合Quartz,需要做的配置是: 1.配置任务调度工厂 2.配置任务调度触发器 3.配置任务调度实现方法类(包括Cron表达式、是否允许并发等) 导入核心依赖(其余的spring-context/spring-mvc等那些就不做展列了)...
阅读全文
摘要:前言,我们这次的案例使用的是QQ邮箱作为示例,作为发送者需要先开启相关的权限(授权)。 授权操作流程: a.进入QQ邮箱,点击‘设置’: b.找到‘账户’: c.往下拉,找到‘POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV...
阅读全文
摘要:当我们使用mybatis框架连接mysql数据库时,操作 时间类型的数据时,会遇到以下两种情况: 问题一.存入的数据在数据库里面显示只有年月日,时分秒全部是是0,如: 2019-08-02 00:00:00 简述发生场景:这种情况,是因为mysql数据库里的相...
阅读全文
摘要:前段时间写了一篇SSM三大框架的整合教程, https://blog.csdn.net/qq_35387940/article/details/97911104 今天就顺便在这个基础上继续整合下redis吧。 第一步,加入相关依赖包,pom.xml: ...
阅读全文
摘要:最近在出些关于SSM环境搭建的教程,在我们搭建SSM架构,一般都无法避免需要加载多个xxxx.properties配置文件。 也许很多人不注意,就会出现类似以下的错误: Could not resolve placeholder 'redis.maxIdl...
阅读全文
摘要:解决方案: 请在pom.xml 添加 依赖包 org.aspectj aspectjweaver 1.6.11
阅读全文
摘要:前文啰嗦: 之前一直使用SpringBoot ,有好一段时间没去一步步整合SSM框架去做项目了,最近有小伙伴在我其他博客的留言,让我感觉到初学者虽然简单学会SpringBoot,确实能快速上手开发项目,但是可能会因为SpringBoot省掉了很多配置导致自己从...
阅读全文
摘要:遇到以上错误,就是因为SQL执行的时候,失败了。 解决方案: 1.检查连接数据库信息,除了基本的帐号密码和连接IP, 也要记得看看数据库名 。 2.检查 sql语句是否能正常运行,放在客户端工具里面单独测试下。 确保以上两步不存在问题,即可。 ...
阅读全文
摘要:使用Notepad++出现了中文乱码,那么可以肯定,就是编码格式对不上。 直接对症下药: 1. 编辑区出现中文乱码, 那么解决方案如下: 然后还可以顺便把新建文件的编码格式也改了: 2.控制台Console出现中文乱码,那么解决方案如下: 到此。...
阅读全文
摘要:工具类代码: import sun.misc.BASE64Encoder;import java.io.ByteArrayOutputStream;import java.io.FileInputStream;import java.io.IOExcepti...
阅读全文
摘要:1.下载安装 64位简体中文版https://pan.baidu.com/share/init?surl=k9dYays0z7EdOVNgDS_bQw 提取码:7w9a 2.安装上面版本 3.下载破解补丁https://pan.baidu.com/s/19...
阅读全文
摘要:当调接口返回的值是压缩过的,如果不做处理就会得到一长串乱码。 解决方案: 在Httpclient工具类方法中,将返回头进行编码获取,判断是否包含gzip,如果包含则进行解压: //此处是将请求体封装成为了StringEntity,若...
阅读全文
摘要:以前写过一篇全局异常抓取以及日志log使用的文章, 今天我们再来单独优化一下这个全局异常抓取,并结合统一的接口返回类。 首先,我们先定义一个错误码接口(其实是返回码接口),里面包含返回码和错误描述,BaseErrorInfoInterface.java :...
阅读全文
摘要:分布式框架,目前比较热门的是springcloud和dubbo,虽然本人也是用cloud比较多,但是避免不了,有的项目就是需要用dubbo。 那么现在就给大家整一篇,简单清晰的spirngboot从零整合dubbo。 先看看这个简单的整合完毕后,项目结构是...
阅读全文
摘要:Kafka是什么,如果你还不了解这个中间件,那么先看看这个(关于介绍kafka的), https://blog.csdn.net/qq_35387940/article/details/84560381 好了,下面我们开始整合: 首先,先往pom.xml文...
阅读全文
摘要:在上一篇https://blog.csdn.net/qq_35387940/article/details/94616604 我们已经将配置中心 ConfigServer成功完成整合,也和github打通,那么这篇我们将实现ConfigClient ,通过 C...
阅读全文
摘要:这篇我们来整合Config组件,就是专门用于读取配置文件的组件,这篇博文将教大家怎么将项目与github打通。 不多说,我们开始整合, 创建一个springboot项目,起名config-server: pom.xml: (springcloud我使用的是...
阅读全文
摘要:直接上代码,简单粗暴: import java.time.LocalDateTime;import java.time.format.DateTimeFormatter;/** * @Author : JCccc * @CreateTime : 2018-...
阅读全文
摘要:先是pom.xml文件添加依赖: io.springfox springfox-swagger2 2.8.0 io.springfox springfox-swagger-ui 2.8.0 application....
阅读全文
摘要:来到这一篇, 我们已经完成了SpringCloud大部分核心组件的整合,那么我们接下来就整合ZipKin组件, 什么是服务链路追踪,作用是什么? 我简单表述下,就是我们可以通过整合这个组件,能看到所有微服务直接的调用关系,所有接口的访问详情,包括节点、耗时等等...
阅读全文
摘要:这篇我将介绍的是网关服务,那么从标题已经知道我们整合的组件时gateway; 也许有人说,为啥不用zuul,这个组件也可以用于做网关。 至于这两组件的性能比较与区别,我们来看一个表格简单了解下: Gateway与Zuul gatewayzuul基本介绍Spr...
阅读全文
摘要:Eureka ,我们简单用一张图介绍: 接下来开始整合: 首先创建一个springboot项目,eureka: (创建时勾选上 Eureka Server依赖,我们这里选用的springcloud版本是:Finchley.RELEASE) pom....
阅读全文
摘要:上一篇https://blog.csdn.net/qq_35387940/article/details/94559369我们已经完成了Eureka 注册中心 Server的搭建与部署,那么这篇,我们就来创建一个微服务 EurekaClient,将其成功注册到...
阅读全文
摘要:直到上一篇https://blog.csdn.net/qq_35387940/article/details/94562280,咱们已经把Eureka Server注册中心搭建完毕,也把微服务成功注册到了注册中心里去了。 接下来,我们整合的是,非常核心实用的组...
阅读全文
摘要:前排提示,我在这个工具类加了@Component注解,如果在springboot的项目使用,记得通过@Autowired注入使用。 import org.springframework.beans.factory.annotation.Autowired;im...
阅读全文