boolean isThrow=true;
Throwable cause = e.getCause();
if(cause instanceof java.sql.SQLIntegrityConstraintViolationException){
isThrow=false;
String errMsg = ((java.sql.SQLIntegrityConstraintViolationException)cause).getMessage();
//根据约束名称定位是那个字段
if(StringUtils.isNotBlank(errMsg) && errMsg.indexOf("IND_APP_DETAIL_APPCODE")!=-1) {
validateResult = "详情必传参数异常: APP_CODE 违反唯一约束条件";
if(isThrow){
//TODO 处理非唯一约束异常
if(StringUtils.isNotblank(validateResult)){
//TODO 把对应错误返回
使用枚举优化
public enum DatabaseExceptions{
IND_APP_CODE("IND_APP_DETAIL_APPCODE","详情必传参数异常: APP_CODE 违反唯一约束条件");
private String code;
private String msg;
private DatabaseExceptions(String code,String msg) {
this.code = code;
this.msg = msg;
public String getCode(){
return this.code;
public String getMsg(String code){
if(IND_APP_CODE.code.equals(code)) {
return IND_APP_CODE.msg;
return "";
private String databaseExceptionsHandling(Exception e) {
String validateResult="";
Throwable cause = e.getCause();
if(cause instanceof java.sql.SQLIntegrityConstraintViolationException){
String errMsg = ((java.sql.SQLIntegrityConstraintViolationException)cause).getMessage();
//根据约束名称定位是那个字段
if(errMsg!=null && errMsg.contains(DatabaseExceptions.IND_APP_CODE.getCode())) {
validateResult = DatabaseExceptions.IND_APP_CODE.getMsg(DatabaseExceptions.IND_APP_CODE.getCode());
}else{
//TODO 处理非唯一约束异常
//TODO 可以添加多种异常分别处理
return validateResult; //TODO 把对应错误返回
String VerificatioResult="";try{ //新增或编辑操作} catch(Exception e) { boolean isThrow=true; Throwable cause = e.getCause(); if(cause instanceof java.sql.SQLIntegrityConstraintViolationExce...
}catch (Exception e) {
if(e instanceof SQLIntegrityConstraintViolationException) {
//返回成功
catch到异常,判断是否java.sql.SQLIntegrityConstraintViolationException(违反唯一约束异常),发现并没有进入if判断
2.问题原因
debug看到e=org.springf
catch (Oracle.DataAccess.Client.OracleException ex)
foreach (Oracle.DataAccess.Client.OracleError error in ex.Errors)
if (error.
hibernate unique配置
昨天自己创建了表,通过hibernate进行映射,添加了unique的限制,运行JUnit测试的时候发现,hibernate没有对配置的字段没有进行唯一性检查,而是直接通过,存入数据库。让人百思不得其解!
后来查阅hibernate文档和网上核对,发现unique只在表是由hibernate自己创建的时候才有效,也就是说
valida
文章目录Apache-DBUtils简介主要API的使用DbUtilsQueryRunner类ResultSetHandler接口及实现类
Apache-DBUtils简介
commons-dbutils 是 Apache 组织提供的一个开源 JDBC工具类库,它是对JDBC的简单封装,学习成本极低,并且使用dbutils能极大简化jdbc编码的工作量,同时也不会影响程序的性能
主要API的使用
DbUtils
DbUtils :提供如关闭连接、装载JDBC驱动程序等常规工作的工具类,里面的所有方法都是静态
spring boot默认的处理异常的机制:spring boot默认的提供了一套处理异常的机制,一旦出现程序异常spring
boot会向/error发起请求。在spring boot中提供了一个 叫Base exception
controller的类来处理/error的请求。然后跳转到默认的异常显示页面来展示错误信息。
如果我们需要将所有的统一跳转到自定义的错误页...