POSTGRESQL 数据库使用注意事项 最近公司项目使用的是POSTGRESQL 数据库,之前一直没有接触过,特此记录下使用过程当中遇到的问题和处理方式。 1 POSTGRESQL 表字段顺序修改 处理方式:没有什么较好的方式,放弃了。 2 POSTGRESQL 修改列数据类型报错:CANNOT BE CAST SMALLINT TO TYPE BOOLEAN 处理方式:先将数据类型修改为:varchar 然后修改为bool 注意 bool当中t表示true ,f表示false 3 POSTGRESQL 远程链接经常掉线 处理方式:修改数据库配置文件的以下配置 相关文章:PG数据库(Postgresql)解决远程易掉线问题 tcp_keepalives_idle = 20 #20秒主动发心跳 tcp_keepalives_interval = 10 #10秒未收到返回心跳则本心跳失败 tcp_keepalives_count = 3 #连续3次心跳失败则主动断线 POSTGRESQL 数据库使用注意事项 运维知识
SpringBoot+Mybatis-plus:使用枚举接收参数并返回数据 最近项目当中大量使用到枚举,特此记录下项目当中使用枚举的好处,场景,使用方式。 枚举的好处 可读性高, 易理解 统一参数类型,避免传参错误 线程安全,全局唯一,无法修改 枚举使用场景 在实际的使用当中,当某个对象或者某个属性,需要有多个可供选择的状态或者描述,例如人的性别,支付的状态,错误的类型等等,都可以使用枚举。 枚举在项目中的使用 通常在项目当中会存在两种形式的枚举 第一种形式 /** * 性别枚举 * * @author hjljy */ @Getter public enum SexEnum { /** * 性别枚举 */ DEFAULT(-1, "保密"), WOMAN(0, "女"), MAN(1, "男"); @EnumValue //标记存储到数据库的值 @JsonValue //标记json返回的值 private final Integer code; private final String remark; SexEnum(Integer code, String remark) {.... SpringBoot+Mybatis-plus:使用枚举接收参数并返回数据 springboot
二零二一,春去夏来 不知不觉,就要到清明祭祖时节了,成都的天气慢慢的进入到春夏交替之时,或炎热,或清凉,反正让我着了凉。 在成都终究还是买了二手房,用于居住,想着夫妻二人在成都还是要工作很长的一段时间,也不太可能一直租房,东拼西凑,最终落于金牛。随之而来的自然是工作的变更,一个半小时的通勤时间,最终还是趁金三银四的时节,换成一个骑车10分钟左右的工作。找工作的过程,一波三折,offer拿到不少,去上班的也有两家,最终还是接受不了大小周,项目架构这些,基本上都放弃了,或许我是不想奋斗了吧!不得不说现在成都很少有私企是双休的啊! 趁着找工作的空隙,去按摩,刮痧,正骨了一下,感觉TM整个人都舒坦了不少。程序员真的是吃的青春和身体的饭啊!!! 加油!打工人,打工魂! 二零二一,春去夏来 生活
分布式锁一般有三种实现方式: 数据库乐观锁 基于ZooKeeper的分布式锁 基于Redis的分布式锁 这里主要记录下基于Redis的分布式锁 Redis加锁 springboot2.1以后的版本可以直接使用redisTemplate提供的setIfAbsent方法进行加锁 相当于使用redis命令:SET key value [EX seconds] [PX millisecounds] [NX|XX] redisTemplate.opsForValue().setIfAbsent(key,value,time,TimeUnit) 为什么是set命令而不是setNx命令? 因为setNx 无法设置key过期时间 需要通过expire来为key设置过期时间,意味着加锁是两条命令,不满足原子性。 锁的过期时间设置多少合适,是否可以不设置? 锁的过期时间一定是要有的,不然留着过年么?过期时间根据具体的业务逻辑来设置,但是一定要大于代码执行的时间。例如: //加锁 锁的过期时间为5秒 Boolean lock = redisTemplate.opsForValue().set.... JAVA 基于Redis的分布式锁 java知识
最近在使用mybatis-plus,发现在对于一些简单函数的使用,官方文档上面没有说明,特此记录下自己的使用方式 max,min,sum函数的使用 QueryWrapper<MemberLevel> queryWrapper = new QueryWrapper<>(); queryWrapper.select("max(level_sort) as levelSort"); 相当于sql : select max(level_sort) as levelSort from member_level 其中的max可以换成min,sum等函数 就是如此的简单 mybatis-plus max函数,sum函数的使用 java知识
最近自己在弄前端相关的一些东西,特此记录下在这个过程当中学习到的前端技术知识点和BUG处理方式 VUE BUG以及知识点资料博文 VUE 路由守卫 next() / next({ ...to, replace: true }) / next(‘/‘) 说明 vue通过路由跳转页面的三种方式 Missing required prop: “value” 报错的解决办法 element plus报错:Can't import the named export 'ArrowDown' from non EcmaScript module (only default export is available) (2021-11-12 添加) JS BUG以及知识点资料博文 1 JS判断数据类型的几种方式 2 vscode中的 jsconfig.json (2021-10-27添加) CSS BUG以及知识点资料博文 1 CSS技巧(一):清除浮动 2 js判断页面图片是否存在,并设置默认值 3 几个div在一行的三种方法 4 rem与px的转换 (2021-10-20 添加) 前端技术知识点BUG资料博文(不断更新当中) vue
开发当中经常时间转换非常常见,最近的项目当中使用了LocalDateTime,特此记录下LocalDateTime的常用转换。 LocalDateTime和时间戳互转 /** * 获取到毫秒级时间戳 * @param localDateTime 具体时间 * @return long 毫秒级时间戳 */ public static long toEpochMilli(LocalDateTime localDateTime){ return localDateTime.toInstant(ZoneOffset.of("+8")).toEpochMilli(); } /** * 毫秒级时间戳转 LocalDateTime * @param epochMilli 毫秒级时间戳 * @return LocalDateTime */ public static LocalDateTime ofEpochMilli(long epochMilli){ return LocalDateTime.ofInstant(Instant.ofEpochMilli(epochMilli), ZoneOffs.... LocalDateTime和时间戳,Date,字符串互转 java知识
最近在返回给前端数据的时候遇到了1 Long类型返回前端精度丢失 2LocalDateTime统一返回时间戳方便前端统一处理的问题,记录下解决方案。 代码如下 环境:springboot2.x ,JDK8 import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com.fasterxml.jackson.databind.JsonSerializer; import com.fasterxml.jackson.databind.SerializerProvider; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import.... Springboot2.x处理Long类型返回前端精度丢失以及LocalDateTime统一返回时间戳 springboot
多灾多难的一年终于要过去了,生活上,工作上,都围绕着疫情。希望来年疫情能够彻底结束吧。 因为疫情,今年在家的时间多了很长一段时间,更能体会到家的温暖。 女儿如今不仅会叫爸爸了,也会到处跑路啦!希望可以健健康康的长大就好了。 过两年打算生个二胎,独生子女的我不想让女儿也体会一下独生子女的生活。 立下明年的flag 1 静下心看完一本书。 2 带上父母出去旅游。 3 熟悉一门新编程语言。 4 每月至少两篇技术博文。 【年终总结】2020年终-愿所有的苦来年不再。 生活
问题 最近做请求切面日志,发现无法读取request的body内容,会提示java.io.IOException: Stream closed。 记录下处理方式 读取request的body内容提示java.io.IOException: Stream closed。 Bug
最近需要进行下前端开发,特此记录下前端开发框架搭建过程 1 安装node.js 官网下载安装即可 官网地址:http://nodejs.cn/download/ 2 安装webpack 在命令行里面输入:npm install --global webpack 全局安装即可。 3 安装vue-cli 开发脚手架 在命令行里面输入:npm install -g @vue/cli 全局安装即可。 在命令行里面输入:npm i -g @vue/cli-init 全局安装即可。 4 创建项目并运行 在指定的目录下进入cmd界面 输入: vue init webpack webtest(项目目录名称) 然后一路enter即可。最后可以看见如下提示: cd webtest npm run dev 按照操作运行即可。最后会弹出项目运行地址,通常是:http://localhost:8080/#/ 进入地址就可以看见界面了。 5 引入element-ui 关闭项目,进入webtest文件夹,进入cmd命令行界面 输入: npm i element-ui -S 即可 安装element-ui 最后打.... 从零开始搭建vue+element-ui的前端开发框架 杂七杂八
之前实现了Springboot之Security前后端分离登录 刚好这段时间有空,乘机整合下OAuth2。记录下当中遇到的问题和处理方式。 springboot2.0整合OAuth2并使用JWT作为token springboot
最近在项目当中需要记录接口请求参数以及返回数据,本来是打算通过自定义切面来实现的,后来发现可以使用@ControllerAdvice配合ResponseBodyAdvice来进行记录数据,特此记录,完整代码如下: /** * @author yichaofan * @since 2020/11/20 12:47 * @apiNote 统一打印请求参数和返回参数日志 */ @ControllerAdvice @Slf4j public class ResponseBodyAnalysis implements ResponseBodyAdvice { /** * 参数返回给前端之前进行,可以进行相关的处理例如,记录请求参数,响应参数,封装统一响应参数等操作 * * 源代码注释如下: * Invoked after an {@code HttpMessageConverter} is selected and just before * its write method is invoked. * @param body the body to be written * @param re.... SpringBoot使用@ControllerAdvice配合ResponseBodyAdvice记录接口请求参数以及返回数据 springboot
今天早上来到公司,发现昨天和我一起进行转正答辩的伙伴离职了,很突然,突然到今天一天都很难过,或许难过还会持续一段时间。 为什么离职呢?据他说是昨天因为某个功能和技术组长吵了一架,然后就离职了。 核心原因我想还是新功能的复杂,老代码的杂乱导致的,技术组长没有对项目代码,数据结构有任何的规划。 我也想走,等我把这边的一些有点技术,技巧,做事方式熟悉理解完毕之后,应该我也走了。 迷茫的一天--从同事离职开始 生活