例如,添加用户功能
用户信息中的用户名,email,手机号码都应该唯一,当提交数据的时候出现数据重复的时候就应该作相应的提示,如用户名重复就应该提示用户名已存在。
问题
在添加新用户的时候数据重复如何处理?
我的想法
我有想过几种方案,
- 在添加的时候,每个唯一的字段都做检查,重复的就返回提示信息。这种方法对于1个2个字段要检查的还行,如果字段>=3就不现实了,添加数据要执行SQL太多了
- 数据库表设置了唯一索引,直接插入数据,有异常就返回一个错误页面
疑惑
网上很多都是第二种方法,但是令我很不解的是,第二种方法如何精准的提示哪个字段出现重复??
如上面的例子,数据出现异常会捕获org.springframework.dao.DuplicateKeyException
,这有可能是用户名重复,也有可能是email重复,也有可能是手机号码重复,如何提示用户呢?
求解答,有github源码借鉴最好,先多谢各位大佬了
真实业务中不会有太多的字段重复检查,如果需要,你可以用切面配合注解来做重复检查