From b6b0f9c47d43e41792db7ef0c3405fd15ac901bb Mon Sep 17 00:00:00 2001 From: AprilWind <2100166581@qq.com> Date: 星期五, 19 七月 2024 15:54:37 +0800 Subject: [PATCH] update 优化代码生成表名查询数据库 --- ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java | 16 --- ruoyi-modules/ruoyi-generator/pom.xml | 24 ++-- ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java | 15 ++ ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml | 212 ------------------------------------------ ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java | 1 5 files changed, 26 insertions(+), 242 deletions(-) diff --git a/ruoyi-modules/ruoyi-generator/pom.xml b/ruoyi-modules/ruoyi-generator/pom.xml index a92ff23..17099d4 100644 --- a/ruoyi-modules/ruoyi-generator/pom.xml +++ b/ruoyi-modules/ruoyi-generator/pom.xml @@ -58,20 +58,20 @@ <artifactId>anyline-data-jdbc-mysql</artifactId> </dependency> - <dependency> - <groupId>org.anyline</groupId> - <artifactId>anyline-data-jdbc-oracle</artifactId> - </dependency> +<!-- <dependency>--> +<!-- <groupId>org.anyline</groupId>--> +<!-- <artifactId>anyline-data-jdbc-oracle</artifactId>--> +<!-- </dependency>--> - <dependency> - <groupId>org.anyline</groupId> - <artifactId>anyline-data-jdbc-postgresql</artifactId> - </dependency> +<!-- <dependency>--> +<!-- <groupId>org.anyline</groupId>--> +<!-- <artifactId>anyline-data-jdbc-postgresql</artifactId>--> +<!-- </dependency>--> - <dependency> - <groupId>org.anyline</groupId> - <artifactId>anyline-data-jdbc-mssql</artifactId> - </dependency> +<!-- <dependency>--> +<!-- <groupId>org.anyline</groupId>--> +<!-- <artifactId>anyline-data-jdbc-mssql</artifactId>--> +<!-- </dependency>--> </dependencies> diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java index ebdb993..e1560b4 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/domain/GenTableColumn.java @@ -17,7 +17,6 @@ * * @author Lion Li */ - @Data @EqualsAndHashCode(callSuper = true) @TableName("gen_table_column") diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java index c2ff7b6..63f4c15 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/mapper/GenTableMapper.java @@ -18,22 +18,6 @@ public interface GenTableMapper extends BaseMapperPlus<GenTable, GenTable> { /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param genTable 鏌ヨ鏉′欢 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - Page<GenTable> selectPageDbTableList(@Param("page") Page<GenTable> page, @Param("genTable") GenTable genTable); - - /** - * 鏌ヨ鎹簱鍒楄〃 - * - * @param tableNames 琛ㄥ悕绉扮粍 - * @return 鏁版嵁搴撹〃闆嗗悎 - */ - List<GenTable> selectDbTableListByNames(String[] tableNames); - - /** * 鏌ヨ鎵�鏈夎〃淇℃伅 * * @return 琛ㄤ俊鎭泦鍚� diff --git a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java index 7e508f9..431092c 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java +++ b/ruoyi-modules/ruoyi-generator/src/main/java/org/dromara/generator/service/GenTableServiceImpl.java @@ -14,6 +14,7 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.anyline.metadata.Table; import org.anyline.proxy.ServiceProxy; import org.apache.velocity.Template; import org.apache.velocity.VelocityContext; @@ -164,7 +165,19 @@ @DS("#dataName") @Override public List<GenTable> selectDbTableListByNames(String[] tableNames, String dataName) { - return baseMapper.selectDbTableListByNames(tableNames); + Set<String> tableNameSet = new HashSet<>(List.of(tableNames)); + List<Table> tableList = ServiceProxy.metadata().tables().values().stream() + .filter(x -> tableNameSet.contains(x.getName())).toList(); + + return tableList.stream().map(x -> { + GenTable gen = new GenTable(); + gen.setDataName(dataName); + gen.setTableName(x.getName()); + gen.setTableComment(x.getComment()); + gen.setCreateTime(x.getCreateTime()); + gen.setUpdateTime(x.getUpdateTime()); + return gen; + }).toList(); } /** diff --git a/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml index 901bbf0..8b12684 100644 --- a/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/ruoyi-modules/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -14,218 +14,6 @@ <id property="columnId" column="column_id"/> </resultMap> - <select id="selectPageDbTableList" resultMap="GenTableResult"> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isMySql()"> - select table_name, table_comment, create_time, update_time - from information_schema.tables - where table_schema = (select database()) - AND table_name NOT LIKE 'sj_%' AND table_name NOT LIKE 'gen_%' - AND table_name NOT LIKE 'act_%' AND table_name NOT LIKE 'flw_%' - <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0"> - AND table_name NOT IN - <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item"> - #{item} - </foreach> - </if> - <if test="genTable.tableName != null and genTable.tableName != ''"> - AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%')) - </if> - <if test="genTable.tableComment != null and genTable.tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{genTable.tableComment}, '%')) - </if> - order by create_time desc - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isOracle()"> - select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time - from user_tables dt, user_tab_comments dtc, user_objects uo - where dt.table_name = dtc.table_name - and dt.table_name = uo.object_name - and uo.object_type = 'TABLE' - AND dt.table_name NOT LIKE 'SJ_%' AND dt.table_name NOT LIKE 'GEN_%' - AND dt.table_name NOT LIKE 'ACT_%' AND dt.table_name NOT LIKE 'FLW_%' - <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0"> - AND lower(dt.table_name) NOT IN - <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item"> - #{item} - </foreach> - </if> - <if test="genTable.tableName != null and genTable.tableName != ''"> - AND lower(dt.table_name) like lower(concat(concat('%', #{genTable.tableName}), '%')) - </if> - <if test="genTable.tableComment != null and genTable.tableComment != ''"> - AND lower(dtc.comments) like lower(concat(concat('%', #{genTable.tableComment}), '%')) - </if> - order by create_time desc - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isPostgerSql()"> - select table_name, table_comment, create_time, update_time - from ( - SELECT c.relname AS table_name, - obj_description(c.oid) AS table_comment, - CURRENT_TIMESTAMP AS create_time, - CURRENT_TIMESTAMP AS update_time - FROM pg_class c - LEFT JOIN pg_namespace n ON n.oid = c.relnamespace - WHERE (c.relkind = ANY (ARRAY ['r'::"char", 'p'::"char"])) - AND c.relname != 'spatial_%'::text - AND n.nspname = 'public'::name - AND n.nspname <![CDATA[ <> ]]> ''::name - ) list_table - where table_name NOT LIKE 'sj_%' AND table_name NOT LIKE 'gen_%' - AND table_name NOT LIKE 'act_%' AND table_name NOT LIKE 'flw_%' - <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0"> - AND table_name NOT IN - <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item"> - #{item} - </foreach> - </if> - <if test="genTable.tableName != null and genTable.tableName != ''"> - AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%')) - </if> - <if test="genTable.tableComment != null and genTable.tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{genTable.tableComment}, '%')) - </if> - order by create_time desc - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isSqlServer()"> - SELECT cast(D.NAME as nvarchar) as table_name, - cast(F.VALUE as nvarchar) as table_comment, - crdate as create_time, - refdate as update_time - FROM SYSOBJECTS D - INNER JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID - AND F.MINOR_ID = 0 AND D.XTYPE = 'U' AND D.NAME != 'DTPROPERTIES' - AND D.NAME NOT LIKE 'sj_%' AND D.NAME NOT LIKE 'gen_%' - AND D.NAME NOT LIKE 'act_%' AND D.NAME NOT LIKE 'flw_%' - <if test="genTable.params.genTableNames != null and genTable.params.genTableNames.size > 0"> - AND D.NAME NOT IN - <foreach collection="genTable.params.genTableNames" open="(" close=")" separator="," item="item"> - #{item} - </foreach> - </if> - <if test="genTable.tableName != null and genTable.tableName != ''"> - AND lower(D.NAME) like lower(concat(N'%', N'${genTable.tableName}', N'%')) - </if> - <if test="genTable.tableComment != null and genTable.tableComment != ''"> - AND lower(CAST(F.VALUE AS nvarchar)) like lower(concat(N'%', N'${genTable.tableComment}', N'%')) - </if> - order by crdate desc - </if> - </select> - - <select id="selectDbTableListByNames" resultMap="GenTableResult"> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isMySql()"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_schema = (select database()) - and table_name NOT LIKE 'sj_%' and table_name NOT LIKE 'gen_%' - and table_name NOT LIKE 'act_%' AND table_name NOT LIKE 'flw_%' - and table_name in - <foreach collection="array" item="name" open="(" separator="," close=")"> - #{name} - </foreach> - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isOracle()"> - select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time - from user_tables dt, user_tab_comments dtc, user_objects uo - where dt.table_name = dtc.table_name - and dt.table_name = uo.object_name - and uo.object_type = 'TABLE' - and dt.table_name NOT LIKE 'SJ_%' AND dt.table_name NOT LIKE 'GEN_%' - and dt.table_name NOT LIKE 'ACT_%' AND dt.table_name NOT LIKE 'FLW_%' - and lower(dt.table_name) in - <foreach collection="array" item="name" open="(" separator="," close=")"> - #{name} - </foreach> - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isPostgerSql()"> - select table_name, table_comment, create_time, update_time - from ( - SELECT c.relname AS table_name, - obj_description(c.oid) AS table_comment, - CURRENT_TIMESTAMP AS create_time, - CURRENT_TIMESTAMP AS update_time - FROM pg_class c - LEFT JOIN pg_namespace n ON n.oid = c.relnamespace - WHERE (c.relkind = ANY (ARRAY ['r'::"char", 'p'::"char"])) - AND c.relname != 'spatial_%'::text - AND n.nspname = 'public'::name - AND n.nspname <![CDATA[ <> ]]> ''::name - ) list_table - where table_name NOT LIKE 'sj_%' and table_name NOT LIKE 'gen_%' - and table_name NOT LIKE 'act_%' and table_name NOT LIKE 'flw_%' - and table_name in - <foreach collection="array" item="name" open="(" separator="," close=")"> - #{name} - </foreach> - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isSqlServer()"> - SELECT cast(D.NAME as nvarchar) as table_name, - cast(F.VALUE as nvarchar) as table_comment, - crdate as create_time, - refdate as update_time - FROM SYSOBJECTS D - INNER JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID - AND F.MINOR_ID = 0 AND D.XTYPE = 'U' AND D.NAME != 'DTPROPERTIES' - AND D.NAME NOT LIKE 'sj_%' AND D.NAME NOT LIKE 'gen_%' - AND D.NAME NOT LIKE 'act_%' AND D.NAME NOT LIKE 'flw_%' - AND D.NAME in - <foreach collection="array" item="name" open="(" separator="," close=")"> - #{name} - </foreach> - </if> - </select> - - <select id="selectTableByName" parameterType="String" resultMap="GenTableResult"> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isMySql()"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_schema = (select database()) - and table_name NOT LIKE 'sj_%' and table_name NOT LIKE 'gen_%' - and table_name NOT LIKE 'act_%' AND table_name NOT LIKE 'flw_%' - and table_name = #{tableName} - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isOracle()"> - select lower(dt.table_name) as table_name, dtc.comments as table_comment, uo.created as create_time, uo.last_ddl_time as update_time - from user_tables dt, user_tab_comments dtc, user_objects uo - where dt.table_name = dtc.table_name - and dt.table_name = uo.object_name - and uo.object_type = 'TABLE' - AND dt.table_name NOT LIKE 'SJ_%' AND dt.table_name NOT LIKE 'GEN_%' - AND dt.table_name NOT LIKE 'ACT_%' AND dt.table_name NOT LIKE 'FLW_%' - AND dt.table_name NOT IN (select table_name from gen_table) - and lower(dt.table_name) = #{tableName} - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isPostgerSql()"> - select table_name, table_comment, create_time, update_time - from ( - SELECT c.relname AS table_name, - obj_description(c.oid) AS table_comment, - CURRENT_TIMESTAMP AS create_time, - CURRENT_TIMESTAMP AS update_time - FROM pg_class c - LEFT JOIN pg_namespace n ON n.oid = c.relnamespace - WHERE (c.relkind = ANY (ARRAY ['r'::"char", 'p'::"char"])) - AND c.relname != 'spatial_%'::text - AND n.nspname = 'public'::name - AND n.nspname <![CDATA[ <> ]]> ''::name - ) list_table - where table_name NOT LIKE 'sj_%' and table_name NOT LIKE 'gen_%' - and table_name NOT LIKE 'act_%' and table_name NOT LIKE 'flw_%' - and table_name = #{tableName} - </if> - <if test="@org.dromara.common.mybatis.helper.DataBaseHelper@isSqlServer()"> - SELECT cast(D.NAME as nvarchar) as table_name, - cast(F.VALUE as nvarchar) as table_comment, - crdate as create_time, - refdate as update_time - FROM SYSOBJECTS D - INNER JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID - AND F.MINOR_ID = 0 AND D.XTYPE = 'U' AND D.NAME != 'DTPROPERTIES' - AND D.NAME NOT LIKE 'sj_%' AND D.NAME NOT LIKE 'gen_%' - AND D.NAME NOT LIKE 'act_%' AND D.NAME NOT LIKE 'flw_%' - AND D.NAME = #{tableName} - </if> - </select> - <select id="selectGenTableById" parameterType="Long" resultMap="GenTableResult"> SELECT t.table_id, t.data_name, t.table_name, t.table_comment, t.sub_table_name, t.sub_table_fk_name, t.class_name, t.tpl_category, t.package_name, t.module_name, t.business_name, t.function_name, t.function_author, t.gen_type, t.gen_path, t.options, t.remark, c.column_id, c.column_name, c.column_comment, c.column_type, c.java_type, c.java_field, c.is_pk, c.is_increment, c.is_required, c.is_insert, c.is_edit, c.is_list, c.is_query, c.query_type, c.html_type, c.dict_type, c.sort -- Gitblit v1.9.3