自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 java8新特性,集合处理18式

第一式: 集合对象,根据其中的一个字段,获取这个字段值最大的那个对象.FullReduceDataVo vo= voList.stream().max(Comparator.comparing(FullReduceDataVo::getDiscount)).get();ps: 获取最小把max换成min就行了.亲测有效!测试代码:public static void main(String[] args) { List<FullReduceDataVo> voList = ne

2021-01-13 16:39:34 9

原创 group by分组,并取分组内最新时间的数据.

可以使用max聚合函数.但是max和group by联合用,会有问题.分组取得数据与最新时间不吻合.需要先分组拿到最新时间,然后内连接,赛选最新的数据.SELECT * from detail as de inner join (SELECT purse_id, MAX(created_at) as mc from bb_purse_detail GROUP BY purse_id )as od on de.purse_id = od.purse_id and de.created_at = od.

2021-01-06 15:44:29 19

原创 idea分支前面的星星有什么用

收藏,靠前展示. 其它无影响.

2021-01-05 10:06:53 20

原创 bigdecimal常用方法

去末尾零: 例子: 100.100 想要100.1方法: .stripTrailingZeros().toPlainString()前面舍弃零,后面转为string.

2021-01-04 10:03:46 4

原创 一个list的size为1,但是内容为null

使用了计算函数sum(),但是括号里面的数据为null;

2020-12-10 16:34:02 51

原创 常用数据结构处理整理一下.天天忘,天天搜,麻烦.

set转一下list : new ArrayList<>(set) .

2020-12-09 10:47:16 6

原创 windows下杀掉端口

Windows两步方法 : 1 查询端口占用,2 强行杀死进程netstat -aon|findstr “8080”taskkill /pid 4136 -t -f 4136和-t之间是有空格的.linux grep -f |aux xxx 大概是忘了杀掉简单些 kill -9 跟查出来的pid启动jar包,nohup Java -jar 后面跟报名参数....

2020-12-09 00:50:38 26

原创 List<对象>把id抽出来组成set<Long>

这样写,百万条测试数据: 77毫秒左右(多次测试)Set collect = usersList.stream().map(Users::getId).collect(Collectors.toSet());这样写,长一些,但是同样数据,34毫秒左右(多次测试)Set set = new HashSet<>();for (Users bb : usersList) {set.add(bb.getId());}深思熟虑之后,我还是用34毫秒的吧....

2020-12-07 11:50:20 22

原创 Bigdecimal.valueOf(0.01)出来得不是0.01,而是0.010000000000123123124123312什么的.用new Bigdecimal(“0.01“)

转bigdecimal类型需要注意的地方

2020-12-07 10:51:32 53

原创 git管理账号密码

git config --global credential.helper store 这个命令有什么用?

2020-12-03 00:37:45 22

原创 mybatis之批量更新

批量更新稍微复杂一些:写个例子 :<update id="xxx" parameterType="list"> update xxx(这个是表名) <trim prefix="set" prefixOverrides=",">(这一行是拼接set ) <trim prefix="code = case" suffix="end,">(这个里面的code是需要修改的字段) <foreach coll

2020-11-29 22:14:29 13

原创 mybatis批量新增之主键回写

正常批量新增比较简单 :写个例子:<insert id="batchInsert" parameterType="list" useGeneratedKeys="true" keyProperty="id"> INSERT INTO `bb_order_item` ( `xx`, `xxx` ) VALUES <foreach collection="list" item="item" separator=",">

2020-11-29 21:37:16 15

原创 捕捉异常出现异常排查思路

如果出现try catch捕捉不到的情况.:首先看你捕捉的是什么异常. 而具体抛出的是什么异常.是否能对应上,大包小.Exception按理说都能捕捉.

2020-11-27 13:49:12 20

原创 阿威十八式之git

今天和代码合错了,有a,b两个分支,想要a合到b,结果翻车了,b合到a了.我不想要.退回方法,git show,查询当前提交:C:xxx>git showcommit 601223xxx1d9570ad03xxxafe96f5d (HEAD ->b)Merge: bbbssb482d (1) aassadf38608(2)Date: Fri Nov 27 10:05:18 2020 +0800Merge branch ‘b’ into aMerge中的两个参数,就是两个提

2020-11-27 11:19:23 101

原创 rebase current select

git的变基操作: 我不知道啥意思,但是我不想这样.我百度运行git rebase --continue,还有git rebase --abort,结果不行:could not read ‘.git/rebase-apply/head-name’: No such file or directory然后我删了.git中的一个 rebase–apply文件之后好了....

2020-11-23 18:10:32 59

原创 批量新增和批量更新

批量新增和批量更新: 如果成功,全成功.如果失败,全失败.

2020-11-20 16:05:19 5

原创 时间类型处理

实际项目中,根据时间搜索,存生日,很多用到时间的.第一: 传时间类型的值后台的字段类型为: Date 类型想要接收前台的时间类型数据 :前台传入一般有三种传入方式 :一个时间对象,一个时间戳,或者是一个字符串.而实际上传入到后台的时候,都是以字符串的形式的形式走的.当后台定义为Date时间类型的时候,并且没有加注解,默认的格式是这样子的:“2020-10-31T16:00:00.000Z”这个样子的格式才能被后台解析到,不然抛异常: HttpMessageNotReadableExcept

2020-11-18 13:51:07 22 1

原创 mybatis手写sql,paramType为一个对象

有些时候,一些手写sql的查询条件如果过多.那么我会选择用json对象来接收查询条件的值.我会定义一个param类来声明各个需要用到的属性.然后从controller层. 接收参数,最后到mapper层的入参,都可以用这个对象代替,而不用去写特别多的参数.这样的话,代码看起来就简洁了许多. 省心且省事,因为不用担心十来个入参,会写错入参的顺序.导致对应不上,也不用担心增加需求: 进行扩展.需要进行扩展的时候,如果是原来的,传入N多个字段,那么从传入到最后的mapper的参数列表全都要改.一不

2020-11-13 17:37:20 26

原创 我开发常用的插件

一 : lombok 通过注解实现get,set构造等方法.避免写大量的代码.并且实体类看起来很简洁.二: .ignore git忽略提交文件.配置在其中的问题,每次提交的时候,就可以自动忽略,不用再去点掉.三:Alibaba Java Coding Guidelines 阿里代码规约,让自己的代码更规范,严谨一些.四:Free Mybatis plugin 这个可以让mapper.xml文件与mapper文件关联起来,通过箭头可以快速调整到对应的手写sql五: Translation...

2020-11-10 10:27:24 8

原创 根据for循环中的参数为粒度进行处理业务的时候,一定要捕捉异常

出现异常之后,后面的代码不会继续运行,程序就会停掉.在for循环里面写业务逻辑,每一个循环都会处理一个特定的业务.如果不捕捉,出现异常之后,后面的就不执行了,这个影响很大.应该让当前的不影响后面的运行....

2020-11-06 11:31:23 11

原创 搭建一个前后端分离个人网站

个人网站搭建:第一步 :需要一个服务器 : 阿里云服务器购买链接 : https://www.aliyun.com/1111/pintuan-share?ptCode=MTY3MzUwNDQ5NzA5MjM0OHx8MTE0fDE%3D&userCode=9kldcwvq双11期间,新用户买1核2G1M的带宽的. 大锤价格.我觉得最具性价比的是2核4G,3M带宽的. 鉴于穷,我买的是一锤子.买完之后,第一步是需要把提货券提货成实例.提货券位置在用户中心的卡券管理里面. 提货...

2020-11-05 16:22:53 60

原创 springboot的全局异常处理

很简单很实用:不用写繁杂的代码,可以对异常进行统一的处理,和返回.创建一个类: CustomExceptionHandler在类名上加上注解: @Slf4j @RestControllerAdvice然后定义异常处理方法:@ExceptionHandler(value = HttpMessageNotReadableException.class)public ResponseEntity HttpMessageNotReadableException(HttpMessageNotReadabl

2020-06-28 11:43:37 61

原创 niws.loadbalancer.availabilityFilteringRule.activeConnectionsLimit = 2147483

记一次异常微服务之间的调用失败处理:问题

2020-06-19 10:34:39 3427

原创 idea中的Run Dashboard显示列表

idea启动多项目的时候,有时候不好管理,切换啊,重启啊,选中都挺麻烦的,有一天我需要启动13个服务的时候,就觉得很麻烦,这时候,idea自动给我右下角弹出了一个配置什么东西的一个选项,我点了一下,出现了这个:Run dashboard: 顾名思义啊,运行仪表版的意思.这个页面是我比较习惯的,在左侧直接有所有项目的列表.想要这样需要点击这个,不然就会是这样:...

2020-06-13 17:23:52 265

原创 配置swagger,后台一直刷新:No mapping found for HTTP request with URI [/null/swagger-resources/configur

那是因为你的swagger链接一直在被访问,不是你自己在访问,就可能是你的同事在访问,一般发生在前后端联调的时候.关掉访问网页就行了.

2020-06-01 15:55:07 835

原创 一对多的时候,用逗号分隔,存id,还是建表存id?

做项目的时候,有种情况是这样的,一个员工,简称admin,对应三个职位abc,可多选.也就是说,他可以是a,也可以是b,也可以是ab,abc,bc,这样子每次碰到这种业务的时候,都很纠结,该以什么方式去存储他们之间的关系,有时候为了懒省事,直接就以逗号分隔,以这样的形式 a,b,c存入数据库中,取出来的时候,对其进行逗号切分处理,然后再根据abc各自进行处理,有时候有些特殊的查询,会用到fin...

2019-12-03 18:54:40 232

原创 win+R输入cmd进入终端,黑漆漆一片

2019-11-21 14:46:31 1031

原创 apache.shiro-cache

定义了一个Cache的接口,这个类中呢,有7个方法,是对缓存的一些操作:是

2019-11-19 15:19:14 52

原创 缓存--悟道崖

在今天之前,我知道的是,缓存就是把数据存在自己电脑的内存中,而存到数据库,就是存到数据库,我甚至不知道数据库是占用的什么空间,我好像就天真的以为,数据库就是用来,存储数据的地方,但是这块地方在那里呢?我从来没有去想过,我知道redis是一个基于内存的存储数据库,速度要比mysql这样的数据库快很多倍,几十倍,这样子吧,但是我也从来没有想过,redis占用的是什么空间,就还TM的天真的任务数据库就是...

2019-11-13 15:55:08 30

原创 观道观道观道

观道

2019-11-05 15:16:06 373

原创 设置方法自定义模板

像这样就行

2019-10-28 18:28:56 39

原创 手写sql如果需要传入两个参数冲突问题

解决之道:第一,用@Param(“companyId”) 用在Mapper层.companyId这个参数要与XMl文件中的参数对应#{companyId}第二:引入的包需是import org.apache.ibatis.annotations.Param; 才行...

2019-08-20 13:57:10 222

原创 springboot整合shiro整合redis的时候,shiro使用redis做缓存,但是redis使用lettuce连接池,包冲突问题

springboot整合shiro整合redis的时候,shiro使用redis做缓存,但是redis使用lettuce连接池,包冲突问题shiro-redis包中有jedisspringboot的redis包中有lettucedev-yml中配置了lettuce,但是缺默认使用jedis的包.老是报read time out的错误解决方法,引入一个连接池的包 <depen...

2019-08-15 16:09:35 1724

原创 黄金矿工错题集-001:mybatis封装的orequalTo的使用.

mybatis封装的orequalTo方法,如果前面有其它条件了,那么后面接orequalTo是不对的:举个列子: sqls.andEqualTo,然后,sqls.orEqualTo.这样的用法,就会导致mysql拼接的查询语句不正确,查不出来东西,或者查询的结果是错误的.::WHERE( ( archive = 0 or shop_id = 144 or shop_id = 145 ) )...

2019-08-09 15:20:41 1073

原创 No mapping found for HTTP request with URI [/null/swagger-resources/configur

如果以前是好得,突然启动得时候出现这个错误,我觉得应该是网络得原因导致得,我已经碰到过这种问题两次,莫名奇妙得坏,莫名奇妙得好,最后联想到这是基于浏览器得一个后台接口文档,如果是浏览器出现网络不通畅的情况,会不会导致这种情况的发生,现在还是一头雾水,但是有这方面的猜想.网上搜到的都是配置不成功,但是我是使用过程中,出现这种问题.所以,我觉得应该出在网络层面上....

2019-07-30 11:57:47 2875 6

翻译 手机注册逻辑

手机注册验证逻辑是这样的:首先要找短信服务商如:梦网、云信使、互亿无线等等申请短信发送接口。网站实现流程如下:第一步:用户注册时输入手机号,网站首先要通过JS或者ajax+php验证这个号码是不是正确的手机号。第二步:用户点击发送手机验证码,通过ajax把手机号传到php,这时php生成一个随机的验证码保存在session中,然后通过短信接口把这个验证码发送到这个手机号中。第三步:用户输...

2019-06-26 15:48:04 463

原创 java中快速获取当前类名的方法。

Java获取当前类名的两种方法适用于非静态方法:this.getClass().getName()适用于静态方法:Thread.currentThread().getStackTrace()[1].getClassName()

2019-06-19 20:28:24 1330

原创 java内存分析工具

2019-06-06 13:37:08 1237

转载 StringUtils

StringUtils工具类常用方法前言:工作中看到项目组里的大牛写代码大量的用到了StringUtils工具类来做字符串的操作,便学习整理了一下,方便查阅。isEmpty(String str) 是否为空,空格字符为false isNotEmpty(String str) 是否为非空,空格字符为true isBlank(String str) 是否为空,空格字符为true isNo...

2019-06-06 11:59:35 297

转载 什么是json

什么是json什么是json,json是什么,json如何使用JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,那么,JSON到底是什么?JSON就是一串字符串 只不过元素会使用特定的符号标注。{} 双括号表示对象[] 中括号表示数组“” 双引号内是属性或值冒号表示后者是前者的值(这个值可以是字符串...

2019-05-30 15:15:43 26

空空如也

空空如也

空空如也

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

TA关注的人 TA的粉丝

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