自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

胡萧徒的博客

胡萧徒的博客

  • 博客(138)
  • 资源 (1)
  • 收藏
  • 关注

原创 postgreSql not in 问题记录

not in 后面的集合中有null值,会导致查询失效

2022-12-16 10:34:48 1177 1

原创 PostgreSQL时间加减

SELECT NOW()::TIMESTAMP+ '1 day'; --当前时间加一天SELECT NOW() + INTERVAL '1 DAY'; --当前时间加一天

2022-11-03 11:22:36 17069

原创 JPA 多数据源 ,hikari 连接池 亲测可用

代码示例:https://gitee.com/Yohann_study/spring-boot-demo/tree/master/demo-multi-datasource-jpa

2022-03-02 15:35:00 557

原创 PostgreSQL 创建分区表,使用JPA插入报错

1.遇到的问题:org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 12.根本原因:JPA对 PostgreSQL 分区表进行数据插入的时候,因为数据实际插入的是分区表,主表没有数据,所以主表返回 "Affected rows: 0",但是hibernate源码中有一个方法: org.hiber

2022-02-18 18:29:43 1519 1

原创 关于 ArrayList 扩容机制

创建一个集合时,集合的初始容量为0;在第一次添加元素的时候,会对集合进行扩容,扩容后的容量为10;之后,当向集合中添加元素达到集合的上限时,扩容为当前容量的1.5倍。案例代码:(可复制直接执行看结果)/** * 创建一个集合时,集合的初始容量为0,在第一次添加元素的时候,会对集合进行扩容,扩容之后,集合容量为10; * 之后,当向集合中添加元素达到集合的上限(也就是minCapacity大于elementData.length)时,会对集合再次扩容,扩容为原来的1.5倍。...

2021-12-22 16:06:43 281

原创 为什么阿里巴巴禁止在 foreach 循环里进行元素的 remove/add 操作

具体原理解释挺长的而且已经有很多文章写了,我只是总结一下:1.此段代码反编译后的样子(实际还是迭代器,但是remove用的是List的remove) ArrayList<String> list = new ArrayList<>(); list.add("1"); list.add("2"); Iterator iterator = list.iterator(); do { ...

2021-12-01 16:56:44 218

原创 JPA @Query 动态SQL

@Query("select * from user "+"WHERE case when (:userName is not null or :userName != '') then user_name like 'XXX%' else 1=1 end "+"OR case when (:userCode is not null or :userCode != '') then user_code = 'XXX' else 1 = 1 end "+)

2021-11-26 10:26:52 2815

原创 集合初始化时指定集合容量大小 -作用以及代码案例

一丶前言最近一个朋友在优化代码,和我提到了这个集合初始容量的问题。所以想起来第一次看到这个还是在 阿里《Java开发手册》上,今天就来复习一下集合初始容量的作用。二丶案例 (注意注释中的介绍)话不多说直接上代码(List 案例): /** * 注解@ParameterizedTest: 和@Test类似,但是允许带有参数 * 注解@ValueSource: 表示会依次按照ints中的参数运行多次 * 0默认,16阿里推荐,200W刚好的容量,..

2021-11-15 18:10:06 1156

原创 安装并使用docker

安装 yum -y install docker 查看版本信息 docker version 启动docker service docker start创建docker文件 touch Dockerfile拉取java:8镜像 docker pull java:8创建镜像 docker build -t 镜像名 ....

2021-11-15 17:36:11 85

原创 添加字段不改代码的方式 - 一劳永逸

1.先看表结构:(表结构DDL丶数据插入DML在末尾)从左到右依次是: user用户表, field字段表, field_value字段值 表 2.表作用解析user 用户表,对应实际生产过程中的业务表field 字段表,user表新增的字段存放在这里field_value 字段值表,存放user表在file字段表中对应的值3.如何查询-- 关联用户和属性表,取出完整数据表(可以建成视图,需要用直接查)...

2021-09-09 14:22:52 877

原创 系统上线后-添加字段的解决方案

1.直接在表里添加字段,然后修改代码。-- 不推荐2.添加一张扩展表,把需要的字段加进去,关联起来,然后改代码-- 一般添加字段多的时候用,需要改代码,不推荐3.预留几个字段,命名的时候使用column1,column2,column3。。。-- 浪费空间,预留字段的时候靠估计,真正用的时候字段可能不够或者多了,不推荐4.预留一个字段放json,比如添加一个extend字段,字段值是{age:18,level:3}-- 由于所有新增字段都放在一个JSON中,...

2021-09-09 11:36:02 1015

原创 百度搜索高级用法

2021-02-04 10:47:02 429

原创 对象集合根据其中某个字段去重,一行解决!

写业务代码的时候碰到一个业务场景,集合需要根据某个字段去重.自己写的太多,所以到网上找了一个简洁的方案,一行解决了,运行也没有问题.但是不太看得懂代码原理,到网上差了点资料弄明白了,在此记录一下核心代码,要用的拿这行去,改下参数名就行了:userList = userList.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Compa...

2020-11-23 17:48:45 4118 9

转载 职场薪酬倒挂,其实是所有人的利益最大化?

通过对留言的分析(很简单的SQL技能),我发现很多朋友对工资少或者工作压力大并不是特别在意(或者说已经习惯了),反倒是一个很有趣的职场现象被提及的特别多。用专业术语讲,这东西叫薪酬倒挂,工作强度与收益不匹配。用大白话讲,就是新招进来的人,普遍工资都比老员工高,但是工作产出和效率往往不如老员工。甚至还出现过很多应届生工资倒挂老员工的现象,看着就特别憋屈。于是老员工们就开始很不满意了,觉得自己被压榨了,天天期望着老板有一天能够良心发现给自己涨工资,明明自己做的比新人又好又熟练,特别委屈。严格

2020-05-19 10:04:10 173

转载 URL 传+号到后台变空格问题解决方案

网上很多解决方法,但是前提是get请求(或者是post请求后面追加的参数),让我试了很久(我是post),没成功!引以为戒!!今天在调试客户端向服务器传递参数时,参数中的“+”全部变成了空格,原因是URL中默认的将“+”号转义了。解决方法如下:方法一、修改客户端,将客户端带“+”的参数中的“+”全部替换为‍“2B%”,这样参数传到服务器端时就能得到“+”了。方法二、修改服务器端,将空格替换为“+”,这种方式只适用于参数中有‍“+”没有空格的情况。例子:S...

2020-05-15 14:38:56 2718

转载 奋斗5年 从月薪3500到700万!

奋斗5年 从月薪3500到700万! 文中主人公记述了在上海5年的事业及生活经历。曲折离奇,但心得颇多,在此与各位淘友分享,希望各位朋友能从中有所感悟。原帖如下??偶的忠告:要想学点什么,首先学会有耐心阅读准备:眼药水+眼镜+耐心+一颗平淡的心来上海整整五年了,事业上已有了突飞猛进的飞跃,生活方面有过一段段的辛酸。然而,如今回首看来,这五年来也这是这些苦恼最终成为我前进的机遇,让我拥有了目前还算可以的生活境遇?700万身价,对有些兄弟来说可能是微不足道,但是我想大多数朋友还可能暂时没有...

2020-05-11 10:36:46 1254

转载 什么是缓存穿透? 如何避免?

1.什么是缓存穿透?一般的缓存系统,都是按照key去缓存查询,如果不存在对应的value,就应该去数据库查询。一些恶意的请求会故意大量查询不存在的key,就会对数据库造成很大的压力。这就叫做缓存穿透。2.如何避免?①采用布隆过滤器,将所有可能存在的数据存到一个bitMap中,不存在的数据就会进行拦截。②对查询结果为空的情况也进行缓存,缓存时间设置短一点,不超过5分钟。...

2020-04-29 16:13:04 1827

原创 python Class init 方法报错

记一个别人问我的小问题,挺久没写Python了一时没解决class Student(): def _init_(self,name,city): self.name=name self.city=city print("my name is %s and come from %s" %(name,city)) def ta...

2020-04-28 11:26:21 870

原创 TCP的三次握手与四次挥手

前言: 笔者已经工作几年了,虽然是在疫情期间,但是笔者的朋友都跳槽找到了还算满意的工作.所以笔者按捺不住想要跳槽,面了几家,问了到基础时好多答不上来(平时都在写业务代码,基础都还给老师了[捂脸]),所以在此回顾下基础知识.以下纯手打,打错望指出.三次握手由于TCP是双工传输,不区分server端和client端.为了便于理解,这里暂且把先发起连接的一端称为client端.刚开...

2020-04-23 22:43:20 209

原创 cmd 查看端口占用情况,及对应进程,杀进程

1. netstat -ano : 查看指所有端口2. netstat -aon | findstr "端口" : 查看指定端口的占用情况3. tasklist | findstr "进程ID" :查看对应进程的任务4. taskkilltaskkill /f /t /im phpstorm64.exe : 杀死进程...

2020-03-19 10:35:58 308

转载 从抖音到“奶头乐“,它是如何一步步毁掉我们的?

当你玩着王者荣耀,吃着鸡,刷着朋友圈,看着抖音的时候,背后有成千上万的人正在费尽心思让这些产品更具有粘性,他们的目的就是一个:毁掉你的自律。只要毁掉你的自律,你就把自己的生命献给了这些东西,当然你也会“嗑瓜子”理论不仅是抖音,但凡涉及到流量、算法推荐的软件,都在利用大数据掏空你的时间。长期沉迷于这种「娱乐至死」的产物,等脱离精神鸦片后,长此以往留下的只是空虚。每一天短暂的舒适,都...

2020-03-05 17:35:35 600

原创 安装并使用docker

安装并使用docker1.安装yum -y install docker2.查看版本信息docker version3.启动dockerservice docker start4.创建并编辑docker文件touch Dockerfilevim Dockerfile内容如下:# FROM :表示用哪个基础镜像去构建新的镜像,这里java:8, 也就是jdk1....

2020-03-04 11:32:13 186

原创 获得 localStorage 最大存储大小的方法

Chrome localStorage 浏览器单个 Item 的最大大小为5120kb 即 5Mif(!window.localStorage) { console.log('当前浏览器不支持localStorage!') } var test = '0123456789'; var add = function(num) { ...

2020-01-10 10:53:17 2952

转载 关于element-ui日期选择器disabledDate使用心得

实现目的:  使用type="data"类型实现具备开始日期与结束日期组件(ps:element有自带的type="daterange"类型的组件可以实现此功能)  1、开始日期和结束日期都被限制只能选择早于当天(包括当天)的日期  2、选择完开始日期,选择结束日期时,只能选择开始日期到当天日期的范围  3、先选择结束日期,再选择开始日期,则只能选择结束日期之前的范围代码...

2019-12-12 15:49:22 1538 2

原创 Java 获取当日前,某月的所有日期

直接上代码:// 获取日期列表private List<String> getDateList() throws ParseException { // 计算的月份 String month = "2016-12"; List<String> dateList = new LinkedList<String>(); Calendar ...

2019-12-11 17:17:58 807

原创 Java 求两个月份之间的每个年月

1. 求两个年月之间的月份,包含开始月份 /** * @param startMonth @example: "2016-01" * @param endMonth @example: "2019-11" * @return 两个时间之间的月份(含开始,结束) * @throws ParseException */ private List<String>...

2019-11-22 14:08:40 455

原创 element-ui 表单自动验证问题的解决

element-ui 中的 el-form 组件自带了验证功能.当 表单初始化后,每次 赋值或进行 相应操作.就会触发 表单自动验证在开发中,有一个不太友好的问题,就是 打开表单后,再打开 就会触发自动校验,报一片红.目前有两种方案应对:1. 是 使用 v-if 控制表单,这样 第二次点开后 表单 无值,也不会触发表单自动校验.缺点 是 v-if 太消耗性能,频繁使用 会导致...

2019-07-28 15:28:10 16340 4

原创 cmd 打开当前目录,当前目录打开 cmd

1. 前目录打开 cmd在当前目录,路径中 输入 cmd 回车 (powershell 同理)2.cmd 打开当前目录命令: explorer %cd% (cmd可以,powershell 不行)

2019-07-28 15:14:22 3591

原创 vue 通过 Blob实现异步下载文件

前言:我是使用 vue-element-admin 里面统一封装了,请求配置和 响应 拦截器.通过 window.open(url) 的方式,下载失败不但不能拿到错误信息,而且 还会跳页面.体验很差.于是使用了,blob 的方式异步下载文件.代码: // 下载文件的具体方法,data 是异步响应体,fileName是文件名 download (data,fil...

2019-07-28 15:03:49 3268

原创 在element-UI 组件的 change 事件中传递自定义参数

如图案例: 在@change 的事件函数体中,在再给一个函数即可 (图中 括号不可省略)@change="(val)=>selectChange(val, '自定义参数')"<el-select v-model="selectSetVal" @change="(val)=>selectChange(val, scope.$index)" placeholder=...

2019-07-28 14:55:39 8795 2

原创 druid 配置多数据源 BindingException: Invalid bound statement (not found)

druid 配置多数据源 报错:org.apache.ibatis.binding.BindingException:Invalidboundstatement (not found):com.homer.console.mapper.training.TeacherMapper.selectByPrimaryKey其他一个微服务也同样使用了多数据源,但是却没有问题.经过对...

2019-07-28 14:50:11 1601 1

原创 el-select 添加 multiple 属性,下拉多选,赋值后点不动

在使用 element 框架时遇到的坑, el-select 下拉多选,赋值后就点不动了.在网上找了一些答案,发现是 双向绑定出了问题.于是 把 原来赋值的方式.this.selectVal = [1,2,3] //[1,2,3]是新值改为this.$set( this,'selectVal',[1,2,3] )就解决了....

2019-07-28 14:41:37 8848 2

原创 element-admin 改造动态菜单,组件路径正确 却一直报 cannt find module XXX

简要:import(`@/views${item.component}`)改为import(`@/views${url}`) , ${} 里面 Object.xxx 改为 xxx记录一个之前 element-admin 改造成动态菜单时,引入组件时遇到的问题.当时动态加载到 组件 url 之后: 通过itemSon.component = () =>import(`...

2019-07-28 14:30:04 3954

转载 sql语句练习50题(Mysql版)

表名和字段–1.学生表Student(s_id,s_name,s_birth,s_sex) --学生编号,学生姓名, 出生年月,学生性别–2.课程表Course(c_id,c_name,t_id) – --课程编号, 课程名称, 教师编号–3.教师表Teacher(t_id,t_name) --教师编号,教师姓名–4.成绩表Score(s_id,c_id,s_score) --学生...

2019-06-25 17:02:25 932 2

转载 超经典SQL练习题,做完这些你的SQL就过关了

转载一篇SQL 练习题.数据库是 Ms SQL Server 2008 ,练习时应当自己建数据,自己先思考,切勿急躁翻答案!否则效果减半,做完这些,恭喜你,你的 SQL 就算过关了。测试表格--1.学生表Student(S#,Sname,Sage,Ssex)--S# 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别--2.课程表Course...

2019-06-25 16:59:15 1242

原创 MySql总结 (笔记)

1.sql 的分类,各个类的作用 DDL 数据定义语言 - create ,drop ,alter ,truncate 不支持事务 DML 数据操作语言 - insert,delete,update ,select 支持事务 DQL 数据查询语言 - 只有 select ,属于 DML 支持事务 TCL 数据控制语言 - rollback rollback ...

2019-06-25 16:21:40 915

原创 MySQL学习笔记

##数据库应用场景咨询类型网站:存新闻,存评论,存用户信息电商类:商品,订单,用户信息社交类:微博,用户信息,用户微博信息,评论信息##课程介绍:##IO流文件存储的弊端效率低(开发效率低,执行效率也低)数据的增删改查非常麻烦只能保存小量数据只能存储文本数据##什么是DBDataBase:数据库,数据库实际上就是一个文件集合,本质就是一个文件系统,数据按照特定的格式存储...

2019-06-25 16:01:37 1283 1

原创 JS的 深拷贝 和 浅拷贝

前言: 原来工作只知道,使用 Object.assign({},obj) 去拷贝一个对象会复制各个熟悉值.不会影响原对象. 后来学会了ES6 是用 扩展运算符{...obj} 拷贝. 但是没有深究其原理.后来有空扒了以下原理和概念:浅拷贝的时候,如果数据是基本数据类型,那么就会拷贝值本身,如果除了基本数据类型之外还有一层对象, 那么对于浅拷贝而言就只能拷贝...

2019-06-17 17:41:54 717

原创 js 数组 常用的几个 函数 find、filter、map、forEach、join、splice

find() 方法返回数组中满足提供的测试函数的第一个元素的值。否则返回 undefined。var array1 = [5, 12, 8, 130, 44];var found = array1.find(function(element) { return element > 10;});console.log(found);// expected output...

2019-06-17 16:51:01 1059

原创 推荐安装的 几个eclipse插件

1.Spring Tools -- springboot 项目开发插件2.MyBatis Generator --自动生成MyBatis增删改查代码3.Enhanced Class Decompiler --反编译神器

2019-04-26 13:57:37 1076

vue-elemnt-admin-master 带完整依赖node_modules

在 github 上下载的 项目,但是 down 下来 npm install 却各种报错,我提供了一些解决方案,如果还不行,就点击下载吧

2019-01-08

空空如也

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

TA关注的人

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