mybatis使用心得(1)—— sql数据如何做唯一校验

前言

在实际开发过程中我们经常会涉及唯一性数据的校验,例如身份证号码,手机号码等信息。而我们通常的做法就是使用ajax异步校验,如果数据库中已经存在此身份证号码则提示,而在修改数据时又需要另一种校验比较麻烦。这里可以提供一种解决思路,通过捕获sql序列提示重复信息。

一、方法对比图

1.ajax异步查询方法

mybatis使用心得(1)—— sql数据如何做唯一校验 - 图1

2.捕获sql序列方法

mybatis使用心得(1)—— sql数据如何做唯一校验 - 图2

二、具体步骤

1.构建序列

mybatis使用心得(1)—— sql数据如何做唯一校验 - 图3
mybatis使用心得(1)—— sql数据如何做唯一校验 - 图4
ORDINARY_WORKER表中构建ORDINARY_WORKER_UINDEX序列

2.捕获sql异常信息

mybatis使用心得(1)—— sql数据如何做唯一校验 - 图5
如果出现重复数据时,会出现ORA-00001: 违反唯一约束条件 (NCDW626.ORDINARY_WORKER_UINDEX)类似提示。

具体代码

  1. try {
  2. } catch (Exception e) {
  3. String errMsg = e.getMessage();
  4. if(StringUtils.isNotBlank(errMsg) && errMsg.contains("ORDINARY_WORKER_UINDEX")) {
  5. result.setStateType(DoResultType.fail);
  6. result.setStateMsg("人员身份证重复");
  7. }else {
  8. result.setStateType(DoResultType.fail);
  9. result.setStateMsg("保存数据失败");
  10. }
  11. LogUtil.error("保存数据失败", e);
  12. }

注意:此处的ORDINARY_WORKER_UINDEX是你数据库中序列的名称

总结

  1. 数据库中构建序列
  2. 使用try_catch捕获异样,获取一种包含序列信息的异样。
  3. 返回数据重复数据