package org.dromara.common.mybatis.enums; import lombok.AllArgsConstructor; import lombok.Getter; import org.dromara.common.core.utils.StringUtils; /** * 数据库类型 * * @author Lion Li */ @Getter @AllArgsConstructor public enum DataBaseType { /** * MySQL */ MY_SQL("MySQL"), /** * Oracle */ ORACLE("Oracle"), /** * PostgreSQL */ POSTGRE_SQL("PostgreSQL"), /** * SQL Server */ SQL_SERVER("Microsoft SQL Server"); /** * 数据库类型 */ private final String type; /** * 根据数据库产品名称查找对应的数据库类型 * * @param databaseProductName 数据库产品名称 * @return 对应的数据库类型枚举值 */ public static DataBaseType find(String databaseProductName) { if (StringUtils.isBlank(databaseProductName)) { return MY_SQL; } for (DataBaseType type : values()) { if (type.getType().equals(databaseProductName)) { return type; } } return MY_SQL; } /** * 判断是否为 MySQL 类型 */ public boolean isMySql() { return this == MY_SQL; } /** * 判断是否为 Oracle 类型 */ public boolean isOracle() { return this == ORACLE; } /** * 判断是否为 PostgreSQL 类型 */ public boolean isPostgreSql() { return this == POSTGRE_SQL; } /** * 判断是否为 SQL Server 类型 */ public boolean isSqlServer() { return this == SQL_SERVER; } }