mybatis使用心得(1)—— sql数据如何做唯一校验
前言
在实际开发过程中我们经常会涉及唯一性数据的校验,例如身份证号码,手机号码等信息。而我们通常的做法就是使用ajax异步校验,如果数据库中已经存在此身份证号码则提示,而在修改数据时又需要另一种校验比较麻烦。这里可以提供一种解决思路,通过捕获sql序列提示重复信息。
一、方法对比图
1.ajax异步查询方法
2.捕获sql序列方法
二、具体步骤
1.构建序列
ORDINARY_WORKER表中构建ORDINARY_WORKER_UINDEX序列
2.捕获sql异常信息
如果出现重复数据时,会出现ORA-00001: 违反唯一约束条件 (NCDW626.ORDINARY_WORKER_UINDEX)类似提示。
具体代码
try {
} catch (Exception e) {
String errMsg = e.getMessage();
if(StringUtils.isNotBlank(errMsg) && errMsg.contains("ORDINARY_WORKER_UINDEX")) {
result.setStateType(DoResultType.fail);
result.setStateMsg("人员身份证重复");
}else {
result.setStateType(DoResultType.fail);
result.setStateMsg("保存数据失败");
}
LogUtil.error("保存数据失败", e);
}
注意:此处的ORDINARY_WORKER_UINDEX是你数据库中序列的名称
总结
- 数据库中构建序列
- 使用try_catch捕获异样,获取一种包含序列信息的异样。
- 返回数据重复数据