博客
关于我
企图变秃变强的第二天
阅读量:518 次
发布时间:2019-03-07

本文共 1751 字,大约阅读时间需要 5 分钟。

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文件,下载到本地,查看是哪里出了异常。

转载地址:http://egsnz.baihongyu.com/

你可能感兴趣的文章
mysql deadlock found when trying to get lock暴力解决
查看>>
MuseTalk如何生成高质量视频(使用技巧)
查看>>
mutiplemap 总结
查看>>
MySQL DELETE 表别名问题
查看>>
MySQL Error Handling in Stored Procedures---转载
查看>>
MVC 区域功能
查看>>
MySQL FEDERATED 提示
查看>>
mysql generic安装_MySQL 5.6 Generic Binary安装与配置_MySQL
查看>>
Mysql group by
查看>>
MySQL I 有福啦,窗口函数大大提高了取数的效率!
查看>>
mysql id自动增长 初始值 Mysql重置auto_increment初始值
查看>>
MySQL in 太多过慢的 3 种解决方案
查看>>
MySQL InnoDB 三大文件日志,看完秒懂
查看>>
Mysql InnoDB 数据更新导致锁表
查看>>
Mysql Innodb 锁机制
查看>>
MySQL InnoDB中意向锁的作用及原理探
查看>>
MySQL InnoDB事务隔离级别与锁机制深入解析
查看>>
Mysql InnoDB存储引擎 —— 数据页
查看>>
Mysql InnoDB存储引擎中的checkpoint技术
查看>>
Mysql InnoDB存储引擎中缓冲池Buffer Pool、Redo Log、Bin Log、Undo Log、Channge Buffer
查看>>