package com.github.walker.easydb.exception;
/**
* <p>
* Locator of mysql error, it points out the detail error message.
* </p>
*
* @author HuQingmiao
*/
public class MysqlErrorLocator extends ErrorLocator {
public String getErrorMsg(int errorCode) {
String errMsg = DataAccessException.UNKNOW_ERROR;
switch (errorCode) {
// 连接不到数据库,数值超过处理精度,数值超过处理精度,插入的值对于列过大,无效数字,无效的日期或时间
// 并非所有变量都已关联,参数值比'?'多或少!
// 批量操作时, 某组参数的值比'?'多!
// 批量操作时, 某组参数的值比'?'少!
case 0:
errMsg = DataAccessException.UNKNOW_ERROR;
break;
case 1045: // 用户名/口令错误
errMsg = DataAccessException.USERNAME_PASSWORD_ERROR;
break;
case 1064: // SQL出现语法错误
errMsg = DataAccessException.SQL_SYNTAX_ERROR;
break;
//
case 1062: // 违反唯一约束
errMsg = DataAccessException.DISOBEY_UNIQUE;
break;
case 942: // 表或视图不存在
errMsg = DataAccessException.TABLE_NOT_EXIST;
break;
case 1054: // 列名不存在
errMsg = DataAccessException.COLUMN_NOT_EXIST;
break;
case 1048:// 违反非空约束
errMsg = DataAccessException.DISOBEY_NOTNULL;
break;
case 1065:// 要执行的 SQL 语句不得为空白或空值!
errMsg = DataAccessException.SQL_CANNOT_NULL;
break;
case 1305:// 不存在的数据库函数!
errMsg = DataAccessException.FUNCTION_NOT_EXIST;
break;
}
return errMsg;
}
}