ITPub博客

首页 > 数据库 > 数据库开发技术 > 异常处理技巧丨创建MockMvc对象时空指针及SQL完整性约束冲突

异常处理技巧丨创建MockMvc对象时空指针及SQL完整性约束冲突

原创 数据库开发技术 作者:Finally_m 时间:2021-12-28 08:03:00 0 删除 编辑
点击上方蓝字关注我们
创建MockMvc对象时空指针异常

一. 异常现象还原

壹哥在SpringBoot 2.2.5中,利用Mock进行测试代码时,首先要创建一个MockMvc对象,本来是系统利用MockMvcBuilders的webAppContextSetup()方法来build出来,结果创建出来MockMvc对象后,发现MockMvc对象产生了空指针异常。

debug调试发现MockMvc对象为空。

二. 解决办法

解决办法就是更换一种MockMvc对象的创建方式,直接利用@AutoConfigureMockMvc注解,然后在MockMvc对象上添加@Autowired注解就可以自动创建出MockMvc对象了。

SQL完整性约束冲突异常

一. 异常现象还原

壹哥在做Java Web项目操作数据库添加数据的时候,项目启动时控制台曝出如下图所示异常:

  • Caused by: java.sql.SQLIntegrityConstraintViolationException: Duplicate entry 'test1' for key

  • 'UK_sb8bbouer5wak8vyiiy4pf2bx ' at

  • com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:117) at

  • com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) at

  • com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) at ......

二. 异常原因

java.sql.SQLIntegrityConstraintViolationException:

其实就是违反了数据库的唯一约束条件!也就是插入数据时,具有唯一约束条件的列值重复了。

根据我图中描述信息的展示可知,我的表中"test1"这一列是具有唯一约束的,现在插入列值时数据有重复了。

所以务必确认插入数据的主键或者具有唯一性约束的列不要有重复数据!!!

三. 解决办法

方法一:将具有唯一约束的列,取消唯一性约束;

方法二:保证插入的数据,与表中已有的数据不重复!

今天的异常学习学会啦吗?如有疑问联系小编哦!

点击【阅读原文】,从0开始学Java

原文作者:Java架构栈;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2021-04-13

  • 博文量
    573
  • 访问量
    243784