企图变秃变强的第二天
1.DataIntegrityViolationException
今天遇到了这个异常,没有任何悬念,第一次遇见它,先百度,通过百度了解到: DataIntegrityViolationException是因为在Insert或Update数据时违反了完整性,例如违反了惟一性限制,在spring的文档中是这样解释的:
Exception thrown when an attempt to insert or update data results in violation of an integrity constraint. Note that this is not purely a relational concept; unique primary keys are required by most database types.
很明显了,没找到主键,说到主键,想起来另一个概念,外键。温习一下。 外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。 主键 主键是能确定一条记录的唯一标识,比如,一条记录包括身份正号,姓名,年龄。 我觉得这篇文章讲的比较形象: 主键外键
2.list优雅的判空
if(list == null){
//意味着list在堆中不存在,根本没有地址,如果此时操作list会报空指针异常。
...
} else{
...
}
优雅的方式:
if (CollectionUtils.isEmpty(list)){
}
这个是springframework.util中的一个类,官方是这样解释以及实现的:
/**
* Return {@code true} if the supplied Collection is {@code null} or empty.
* Otherwise, return {@code false}.
* @param collection the Collection to check
* @return whether the given Collection is empty
*/
public static boolean isEmpty(@Nullable Collection<?> collection) {
return (collection == null || collection.isEmpty());
}
这个工具类用于判定我们传入的集合是否为空,如果是空返回false; 它在传入的参数中加了注解**@NonNull**,百度了一下这两个注解: @NonNull 可以标注在方法、字段、参数之上,表示对应的值不可以为空 @Nullable 注解可以标注在方法、字段、参数之上,表示对应的值可以为空, 所以这个参数加在这里,就是校验传入的参数是否为空呗,想起来Spring中的一个校验注解**@validated** ,以及lombok中的**@NonNull**。
其他的判断list是否为空的方式还有list.size(),list.isEmpty()。
今天还用到了StringUtils,这个类有springframework下的,还有apache下lang3包的,不过lang3包中的名副其实,只能做String类型的判空,而springframework则可以判断Obj类型,所有类的爸爸。
3.Jenkins部署,build完成之后去服务器执行脚本
当接口测试完成后,可以把代码部署到服务器,以前没做过,今天尝试了一下,感觉,有点刺激… 步骤就是先去Jenkins大老爷的后台,找到Build Now,大哥给我说,如果代码编译出错的话,有一个红色的小点点,在本地看一眼代码哪里出错了。编译成功是一种说不上来的颜色,我的颜色库比较匮乏,暂且叫蓝色。之后就是去远程仓库下执行脚本。阳哥告诉我sh和./都可以执行,因为懒,所以就./ +脚本名吧,这时候就等着服务器的重启服务就好了。
4.去服务器扒日志
当非本地环境代码出现异常,本地没有日志,就可以通过XFTP等工具去log文件夹下找对应服务的log文件,下载到本地,查看是哪里出了异常。
- 备胎的养成记KeepAlived实现热备负载
- 0基础搭建Hadoop大数据处理-初识
- 入坑系列之HAProxy负载均衡
- 如何开发自己的搜索帝国之Elasticsearch
- NET中解决KafKa多线程发送多主题的问题
- mysql数据与Hadoop之间导入导出之Sqoop实例
- 如何将mysql数据导入Hadoop之Sqoop安装
- 常见的几种Flume日志收集场景实战
- 教你一步搭建Flume分布式日志系统
- 几十条业务线日志系统如何收集处理?
- 0基础搭建Hadoop大数据处理-编程
- 0基础搭建Hadoop大数据处理-集群安装
- Validation of viewstate MAC failed 解决办法
- springmvc注入类 NoUniqueBeanDefinitionException: No qualifying bean of type [] is defined: expected sin
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 用Python写一个身份证号码校验系统
- 手摸手 Elastic Stack 使用教程 - 环境安装
- SAS-输出文档生成目录的方法
- 醒醒神,爱奇艺笔试真题
- Qt音视频开发22-通用GPU显示
- 通吃岛屿问题
- 堂妹问我:Dubbo的服务暴露过程
- LeetCode 657. 机器人能否返回原点
- ! [rejected] master -> master (fetch first)
- Mybatis源码学习(二)Mapper动态代理
- Mybatis源码学习(三)executor
- Mybatis源码学习(四)拦截器与插件原理
- SpringBoot如何使用注解装配Bean
- Spring Boot 如何快速实现定时任务
- Django 实现文件上传下载API