package com.yanzuoguang.dao; import com.yanzuoguang.util.YzgError; import com.yanzuoguang.util.helper.StringHelper; /** * DAO层处理基本美剧 * * @author 颜佐光 */ public class DaoConst { /** * 创建操作 */ public static final int OPERATOR_TYPE_CREATE = 0; /** * 更新操作 */ public static final int OPERATOR_TYPE_UPDATE = 1; /** * 删除操作 */ public static final int OPERATOR_TYPE_REMOVE = 2; /** * 加载操作 */ public static final int OPERATOR_TYPE_LOAD = 3; /** * 主键存在则修改,否则创建 */ public static final String REPLACE = "replace"; /** * 创建 */ public static final String CREATE = "create"; /** * 修改 */ public static final String UPDATE = "update"; /** * 删除 */ public static final String REMOVE = "remove"; /** * 加载 */ public static final String LOAD = "load"; /** * 查询 */ public static final String QUERY = "query"; /** * GROUP增加数据的SQL语句 */ public static final String GROUP_ADD = "GroupAdd"; /** * GROUP查询数据的SQL语句 */ public static final String GROUP_QUERY = "GroupQuery"; /** * 根据某个字段保存 */ public static final String SAVE_WITH = "SaveWith"; /** * 驼峰式命名 */ public static final int ROW_NAME_TYPE_CAMEL_CASE = 0; /** * 原字段 */ public static final int ROW_NAME_TYPE_NO_CHANGE = 1; /** * 主键自增为0 */ public static final String ZERO = "0"; /** * 单位地址 */ public static final int CODE_UNIT = 2; /** * 插入SQL语句模板 */ public static final String SQL_REPLACE = "REPLACE INTO {TABLE}({FIELD}) VALUES({VALUES})"; /** * 插入SQL语句模板 */ public static final String SQL_INSERT = "INSERT INTO {TABLE}({FIELD}) VALUES({VALUES})"; /** * 更新SQL语句模板 */ public static final String SQL_UPDATE = "UPDATE {TABLE} AS a {INNER} SET {FIELD} WHERE 1=1 {WHERE}"; /** * 删除SQL语句模板 */ public static final String SQL_REMOVE = "DELETE a FROM {TABLE} AS a {INNER} WHERE 1=1 {WHERE}"; /** * 加载SQL语句模板 */ public static final String SQL_LOAD = "{SELECT_OUTER_BEGIN}SELECT {FIELD} FROM {TABLE} AS a {INNER} WHERE 1=1" + "{WHERE}{GROUP}{HAVING}{ORDER}{LIMIT}{SELECT_OUTER_END}{INNER_OUTER}{WHERE_OUTER}{GROUP_OUTER}{HAVING_OUTER}{ORDER_OUTER}{LIMIT_OUTER}"; public static final String SQL_LIST_FROM = "^[\\s\\S]+?VALUES\\s*?\\("; public static final String SQL_LIST_TO = ",("; /** * SQL加载 */ public static final String CODE_FIELD_DEFAULT = "a.*"; /** * SQL加载 */ public static final String CODE_FIELD_DEFAULT_NAME = "CODE_FIELD_DEFAULT_NAME"; /** * 值代码片段 */ public static final String CODE_TABLE = "{TABLE}"; public static final String CODE_FIELD = "{FIELD}"; public static final String CODE_VALUES = "{VALUES}"; public static final String CODE_WHERE = "{WHERE}"; public static final String CODE_INNER = "{INNER}"; public static final String CODE_ORDER = "{ORDER}"; public static final String CODE_GROUP = "{GROUP}"; public static final String CODE_LIMIT = "{LIMIT}"; public static final String CODE_LIMIT_OUTER = "{LIMIT_OUTER}"; /** * 更新字段模板 */ public static final String CODE_UPDATE_FIELD = "a.%s=%s"; /** * 更新字段模板主键 */ public static final String CODE_UPDATE_PRIMARY = "a.%s=a.%s"; /** * 更新字段模板参数 */ public static final String CODE_UPDATE_FIELD_PARA = ",a.%s=?"; /** * 更新字段模板参数 */ public static final String CODE_UPDATE_FIELD_REMOVE = "a.%s=1"; /** * 等于条件 */ public static final String CODE_WHERE_EQUALS = "AND %s%s=%s"; /** * In条件参数 */ public static final String CODE_WHERE_IN = "AND %s%s IN (%s)"; /** * 等于条件参数 */ public static final String CODE_WHERE_EQUALS_PARA = "AND a.%s=?"; /** * In条件参数 */ public static final String CODE_WHERE_IN_PARA = "AND a.%s IN (?)"; /** * In条件结尾 */ public static final String CODE_WHERE_IN_END = "s"; /** * In条件结尾_es */ public static final String CODE_WHERE_IN_END_ES = "es"; /** * 等于条件参数 */ public static final String CODE_WHERE_EQUALS_NOT_EMPTY_PARA = "AND a.%s=? AND ?>'' "; /** * 未删除条件 */ public static final String CODE_WHERE_EQUALS_NOT_REMOVE = "AND a.%s=0"; /** * 版本好字段 */ public static final String CODE_UPDATE_VERSION_FIELD = ",a.%s=1+a.%s"; /** * 不等于条件 */ public static final String CODE_WHERE_NOT_EQUALS = "AND %s%s<>%s"; /** * 不等于条件 */ public static final String CODE_WHERE_NOT_EQUALS_PARA = "AND a.%s<>?"; /** * 默认表标记 */ public static final String CODE_TAG = "a."; /** * 参数标记 */ public static final String CODE_PARA = "?"; /** * 增加修改语句的分割符号 */ public static final String CODE_SPLIT = ","; /** * 统计语句增加字段模板 */ public static final String CODE_GROUP_ADD = "a.{FIELD}=a.{FIELD}+?"; /** * 版本号字段名称 */ public static final String VERSION_FLAG = "version"; /** * 删除字段名称 */ public static final String REMOVE_FLAG = "remove"; /** * 创建字段名称 */ public static final String CREATE_FLAG = "create"; /** * 更新字段名称 */ public static final String UPDATE_FLAG = "update"; /** * MD5标记字段 */ public static final String MD5_KEY_FLAG = "md5key"; /** * 删除字符串长度变量 */ public static final String REMOVE_FLAG_INPUT = "remove_input"; /** * ID字段 */ public static final String ID_FIELD = "id"; /** * 集合初始化大小 */ public static final int COLLECTION_INIT_SIZE = 15; /** * 查询条件默认代码片段 */ public static final String[] LAST_AUTO_ADD = new String[]{"{WHERE}", "{GROUP}", "{HAVING}", "{ORDER}", "{LIMIT}"}; /** * 普通字段 */ public static final int FIELD_NONE = -1; /** * 普通字段 */ public static final int FIELD_COMMON = 0; /** * 删除标记 */ public static final int FIELD_REMOVE = 1; /** * 版本号字段 */ public static final int FIELD_VERSION = 2; /** * 主键字段 */ public static final int FIELD_PRIMARY = 3; /** * MD5标记字段,用于统计字段 */ public static final int FIELD_MD5 = 4; /** * 删除时记录操作状态的字段 */ public static final int FIELD_REMOVE_UPDATE = 5; /** * 删除时记录操作状态的字段 */ public static final int FIELD_CREATE = 6; /** * 根据字段保存 */ public static final int FIELD_SAVE_WITH = 7; /** * 根据字段添加统计 */ public static final int FIELD_ADD_GROUP = 8; /** * 根据字段替换统计 */ public static final int FIELD_REPLACE_GROUP = 9; /** * SQL语句类型-普通语句 */ public static final int SQL_TYPE_COMMON = 0; /** * SQL语句类型-创建语句 */ public static final int SQL_TYPE_CREATE = 1; /** * SQL语句类型-更新语句 */ public static final int SQL_TYPE_UPDATE = 2; /** * SQL语句类型-删除语句 */ public static final int SQL_TYPE_REMOVE = 3; /** * SQL语句类型-加载语句 */ public static final int SQL_TYPE_LOAD = 4; /** * SQL语句类型-是否存在 */ public static final int SQL_TYPE_EXISTS = 5; /** * SQL语句类型-根据字段保存 */ public static final int SQL_TYPE_SAVE_WITH = 6; /** * SQL语句类型-添加统计 */ public static final int SQL_TYPE_ADD_GROUP = 7; /** * 获取数组参数名称 * * @param name * @return */ public static String getArrayParameterName(String name) { if (StringHelper.isEmpty(name)) { throw YzgError.getRuntimeException("060"); } String lName = name.toLowerCase(); if (lName.endsWith(DaoConst.CODE_WHERE_IN_END)) { return name + DaoConst.CODE_WHERE_IN_END_ES; } else { return name + DaoConst.CODE_WHERE_IN_END; } } }