This is an automated email from the ASF dual-hosted git repository. benjobs pushed a commit to branch like in repository https://gitbox.apache.org/repos/asf/incubator-streampark.git
commit a791b4e94a761cb5b69ce2a844c5ec7b9b81ffcf Author: benjobs <[email protected]> AuthorDate: Fri Feb 16 17:38:08 2024 +0800 [Imprpve] JDBC "like" syntax is compatible with mysql and pgsql --- .../console/base/config/MybatisConfig.java | 16 ++++++++++++++++ .../resources/mapper/core/ApplicationMapper.xml | 21 ++++++++++++++++++--- .../main/resources/mapper/core/ProjectMapper.xml | 7 ++++++- .../main/resources/mapper/core/VariableMapper.xml | 21 ++++++++++++++++++--- .../main/resources/mapper/core/YarnQueueMapper.xml | 7 ++++++- .../main/resources/mapper/system/MemberMapper.xml | 7 ++++++- .../src/main/resources/mapper/system/RoleMapper.xml | 7 ++++++- .../src/main/resources/mapper/system/TeamMapper.xml | 7 ++++++- .../src/main/resources/mapper/system/UserMapper.xml | 7 ++++++- 9 files changed, 88 insertions(+), 12 deletions(-) diff --git a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/MybatisConfig.java b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/MybatisConfig.java index 5be603899..206b035e1 100644 --- a/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/MybatisConfig.java +++ b/streampark-console/streampark-console-service/src/main/java/org/apache/streampark/console/base/config/MybatisConfig.java @@ -17,6 +17,8 @@ package org.apache.streampark.console.base.config; +import org.apache.ibatis.mapping.DatabaseIdProvider; +import org.apache.ibatis.mapping.VendorDatabaseIdProvider; import org.apache.streampark.console.base.mybatis.interceptor.PostgreSQLPrepareInterceptor; import org.apache.streampark.console.base.mybatis.interceptor.PostgreSQLQueryInterceptor; @@ -34,6 +36,8 @@ import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; +import java.util.Properties; + /** for MyBatis Configure management. */ @Configuration @MapperScan(value = {"org.apache.streampark.console.*.mapper"}) @@ -89,4 +93,16 @@ public class MybatisConfig { properties.setGlobalConfig(globalConfig); }; } + + @Bean + public DatabaseIdProvider databaseIdProvider() { + VendorDatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider(); + Properties properties = new Properties(); + properties.put("MySQL","mysql"); + // h2 is also used as the processing strategy for MySQL + properties.setProperty("H2", "mysql"); + properties.setProperty("PostgreSQL", "pgsql"); + databaseIdProvider.setProperties(properties); + return databaseIdProvider; + } } diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml index ebc1a275e..b6f71849c 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ApplicationMapper.xml @@ -163,10 +163,20 @@ and t.execution_mode = #{application.executionMode} </if> <if test="application.jobName != null and application.jobName != ''"> - and t.job_name like concat('%','${application.jobName}','%') + <if test="_databaseId == 'mysql'"> + and t.job_name like concat('%', #{application.jobName},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and t.job_name like '%' || #{application.jobName} || '%' + </if> </if> <if test="application.projectName != null and application.projectName != ''"> - and p.name like concat('%','${application.projectName}','%') + <if test="_databaseId == 'mysql'"> + and p.name like concat('%', #{application.projectName},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and p.name like '%' || #{application.projectName} || '%' + </if> </if> <if test="application.appId != null and application.appId != ''"> and t.app_id = #{application.appId} @@ -185,7 +195,12 @@ </foreach> </if> <if test="application.tags != null and application.tags != ''"> - and t.tags like concat('%','${application.tags}','%') + <if test="_databaseId == 'mysql'"> + and t.tags like concat('%', #{application.tags},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and t.tags like '%' || #{application.tags} || '%' + </if> </if> </where> </select> diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml index a04ab7305..eb242ba38 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/ProjectMapper.xml @@ -72,7 +72,12 @@ <where> t.team_id = #{project.teamId} <if test="project.name != null and project.name != ''"> - and t.name like concat('%','${project.name}','%') + <if test="_databaseId == 'mysql'"> + and t.name like concat('%', #{project.name},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and t.name like '%' || #{project.name} || '%' + </if> </if> <if test="project.buildState != null"> and t.build_state = #{project.buildState} diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml index 855ec164c..c55480aa6 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/VariableMapper.xml @@ -38,10 +38,20 @@ on v.creator_id = u.user_id and v.team_id = #{variable.teamId} <if test="variable.description != null and variable.description != ''"> - and v.description like concat('%','${variable.description}','%') + <if test="_databaseId == 'mysql'"> + and v.description like concat('%', #{variable.description},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and v.description like '%' || #{variable.description} || '%' + </if> </if> <if test="variable.variableCode != null and variable.variableCode != ''"> - and v.variable_code like concat('%','${variable.variableCode}','%') + <if test="_databaseId == 'mysql'"> + and v.variable_code like concat('%', #{variable.variableCode},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and v.variable_code like '%' || #{variable.variableCode} || '%' + </if> </if> </select> @@ -61,7 +71,12 @@ <where> team_id = #{teamId} <if test="keyword != null and keyword != ''"> - and variable_code like concat('%', '${keyword}', '%') or description like concat('%', '${keyword}', '%') + <if test="_databaseId == 'mysql'"> + and variable_code like concat('%', #{keyword}, '%') or description like concat('%', #{keyword}, '%') + </if> + <if test="_databaseId == 'pgsql'"> + and variable_code like '%' || #{keyword} || '%' or description like '%' || #{keyword} || '%' + </if> </if> </where> </select> diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/core/YarnQueueMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/core/YarnQueueMapper.xml index a1f27f4a8..a49b439f0 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/core/YarnQueueMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/core/YarnQueueMapper.xml @@ -33,7 +33,12 @@ team_id = #{yarnQueue.teamId} </if> <if test="yarnQueue.queueLabel != null and yarnQueue.queueLabel != ''"> - and queue_label like concat('%','${yarnQueue.queueLabel}','%') + <if test="_databaseId == 'mysql'"> + and queue_label like concat('%', #{yarnQueue.queueLabel},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and queue_label like '%' || #{yarnQueue.queueLabel} || '%' + </if> </if> <if test="yarnQueue.createTimeFrom != null and yarnQueue.createTimeFrom !=''"> and create_time > #{yarnQueue.createTimeFrom} diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml index 3d79db840..643ebc206 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/system/MemberMapper.xml @@ -51,7 +51,12 @@ <where> tur.team_id = #{member.teamId} <if test="member.userName != null and member.userName != ''"> - and u.username like concat('%','${member.userName}','%') + <if test="_databaseId == 'mysql'"> + and u.username like concat('%', #{member.userName},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and u.username like '%' || #{member.userName} || '%' + </if> </if> <if test="member.roleName != null and member.roleName != ''"> and r.role_name = #{member.roleName} diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/system/RoleMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/system/RoleMapper.xml index c4c2bcaff..0904f6e47 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/system/RoleMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/system/RoleMapper.xml @@ -29,7 +29,12 @@ select * from t_role <where> <if test="role.roleName != null and role.roleName != ''"> - and role_name like concat('%','${role.roleName}','%') + <if test="_databaseId == 'mysql'"> + and role_name like concat('%', #{role.roleName},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and role_name like '%' || #{role.roleName} || '%' + </if> </if> <if test="role.createTimeFrom != null and role.createTimeFrom !=''"> and create_time > #{role.createTimeFrom} diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/system/TeamMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/system/TeamMapper.xml index 328842435..b2b39d8e0 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/system/TeamMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/system/TeamMapper.xml @@ -29,7 +29,12 @@ select * from t_team <where> <if test="team.teamName != null and team.teamName != ''"> - and team_name like concat('%','${team.teamName}','%') + <if test="_databaseId == 'mysql'"> + and team_name like concat('%', #{team.teamName},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and team_name like '%' || #{team.teamName} || '%' + </if> </if> <if test="team.createTimeFrom != null and team.createTimeFrom !=''"> and create_time > #{team.createTimeFrom} diff --git a/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml b/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml index db459d626..e819aa114 100644 --- a/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml +++ b/streampark-console/streampark-console-service/src/main/resources/mapper/system/UserMapper.xml @@ -38,7 +38,12 @@ select * from t_user <where> <if test="user.username != null and user.username != ''"> - and username like concat('%','${user.username}','%') + <if test="_databaseId == 'mysql'"> + and username like concat('%', #{user.username},'%') + </if> + <if test="_databaseId == 'pgsql'"> + and username like '%' || #{user.username} || '%' + </if> </if> <if test="user.createTimeFrom != null and user.createTimeFrom !=''"> and create_time > #{user.createTimeFrom}
