Commit f5ed040943695389e559087661bae25d9fcbe074
1 parent
87c6c90a
【代码优化】全局:数据库 findInSet 兼容
Showing
2 changed files
with
16 additions
and
4 deletions
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/enums/DbTypeEnum.java
| @@ -11,10 +11,13 @@ import java.util.Optional; | @@ -11,10 +11,13 @@ import java.util.Optional; | ||
| 11 | import java.util.function.Function; | 11 | import java.util.function.Function; |
| 12 | import java.util.stream.Collectors; | 12 | import java.util.stream.Collectors; |
| 13 | 13 | ||
| 14 | - | 14 | +/** |
| 15 | + * 针对 MyBatis Plus 的 {@link DbType} 增强,补充更多信息 | ||
| 16 | + */ | ||
| 15 | @Getter | 17 | @Getter |
| 16 | @AllArgsConstructor | 18 | @AllArgsConstructor |
| 17 | public enum DbTypeEnum { | 19 | public enum DbTypeEnum { |
| 20 | + | ||
| 18 | /** | 21 | /** |
| 19 | * MySQL | 22 | * MySQL |
| 20 | */ | 23 | */ |
| @@ -27,6 +30,8 @@ public enum DbTypeEnum { | @@ -27,6 +30,8 @@ public enum DbTypeEnum { | ||
| 27 | 30 | ||
| 28 | /** | 31 | /** |
| 29 | * PostgreSQL | 32 | * PostgreSQL |
| 33 | + * | ||
| 34 | + * 华为 openGauss 使用 ProductName 与 PostgreSQL 相同 | ||
| 30 | */ | 35 | */ |
| 31 | POSTGRE_SQL(DbType.POSTGRE_SQL,"PostgreSQL", "POSITION('#{value}' IN #{column}) <> 0"), | 36 | POSTGRE_SQL(DbType.POSTGRE_SQL,"PostgreSQL", "POSITION('#{value}' IN #{column}) <> 0"), |
| 32 | 37 | ||
| @@ -44,8 +49,6 @@ public enum DbTypeEnum { | @@ -44,8 +49,6 @@ public enum DbTypeEnum { | ||
| 44 | * 人大金仓 | 49 | * 人大金仓 |
| 45 | */ | 50 | */ |
| 46 | KINGBASE_ES(DbType.KINGBASE_ES, "KingbaseES", "POSITION('#{value}' IN #{column}) <> 0"), | 51 | KINGBASE_ES(DbType.KINGBASE_ES, "KingbaseES", "POSITION('#{value}' IN #{column}) <> 0"), |
| 47 | - | ||
| 48 | - // 华为openGauss 使用ProductName 与 PostgreSQL相同 | ||
| 49 | ; | 52 | ; |
| 50 | 53 | ||
| 51 | public static final Map<String, DbTypeEnum> MAP_BY_NAME = Arrays.stream(values()) | 54 | public static final Map<String, DbTypeEnum> MAP_BY_NAME = Arrays.stream(values()) |
| @@ -54,9 +57,17 @@ public enum DbTypeEnum { | @@ -54,9 +57,17 @@ public enum DbTypeEnum { | ||
| 54 | public static final Map<DbType, DbTypeEnum> MAP_BY_MP = Arrays.stream(values()) | 57 | public static final Map<DbType, DbTypeEnum> MAP_BY_MP = Arrays.stream(values()) |
| 55 | .collect(Collectors.toMap(DbTypeEnum::getMpDbType, Function.identity())); | 58 | .collect(Collectors.toMap(DbTypeEnum::getMpDbType, Function.identity())); |
| 56 | 59 | ||
| 57 | - | 60 | + /** |
| 61 | + * MyBatis Plus 类型 | ||
| 62 | + */ | ||
| 58 | private final DbType mpDbType; | 63 | private final DbType mpDbType; |
| 64 | + /** | ||
| 65 | + * 数据库产品名 | ||
| 66 | + */ | ||
| 59 | private final String productName; | 67 | private final String productName; |
| 68 | + /** | ||
| 69 | + * SQL FIND_IN_SET 模板 | ||
| 70 | + */ | ||
| 60 | private final String findInSetTemplate; | 71 | private final String findInSetTemplate; |
| 61 | 72 | ||
| 62 | public static DbType find(String databaseProductName) { | 73 | public static DbType find(String databaseProductName) { |
yudao-framework/yudao-spring-boot-starter-mybatis/src/main/java/cn/iocoder/yudao/framework/mybatis/core/util/MyBatisUtils.java