From 5911e94b65e45c98c81f64928232b5d8f824a19b Mon Sep 17 00:00:00 2001 From: 疯狂的狮子Li <15040126243@163.com> Date: 星期六, 14 一月 2023 01:01:13 +0800 Subject: [PATCH] update 优化 利用 resultMap 自动映射配置 简化 xml (非嵌套) --- ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml | 93 ++++++++++++++++++---------------------------- 1 files changed, 36 insertions(+), 57 deletions(-) diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml index b66b25d..21bd26b 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -4,7 +4,7 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.generator.mapper.GenTableMapper"> - <resultMap type="GenTable" id="GenTableResult"> + <resultMap type="com.ruoyi.generator.domain.GenTable" id="GenTableResult"> <id property="tableId" column="table_id" /> <result property="tableName" column="table_name" /> <result property="tableComment" column="table_comment" /> @@ -28,7 +28,7 @@ <collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" /> </resultMap> - <resultMap type="GenTableColumn" id="GenTableColumnResult"> + <resultMap type="com.ruoyi.generator.domain.GenTableColumn" id="GenTableColumnResult"> <id property="columnId" column="column_id" /> <result property="tableId" column="table_id" /> <result property="columnName" column="column_name" /> @@ -109,64 +109,22 @@ order by create_time desc </if> <if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()"> - </if> - </select> - - <select id="selectDbTableList" resultMap="GenTableResult"> - <if test="@com.ruoyi.common.helper.DataBaseHelper@isMySql()"> - select table_name, table_comment, create_time, update_time - from information_schema.tables - AND table_name NOT LIKE 'xxl_job_%' AND table_name NOT LIKE 'gen_%' - AND table_name NOT IN (select table_name from gen_table) - <if test="tableName != null and tableName != ''"> - AND lower(table_name) like lower(concat('%', #{tableName}, '%')) - </if> - <if test="tableComment != null and tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) - </if> - order by create_time desc - </if> - <if test="@com.ruoyi.common.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 'XXL_JOB_%' AND dt.table_name NOT LIKE 'GEN_%' - AND lower(dt.table_name) NOT IN (select table_name from gen_table) - <if test="tableName != null and tableName != ''"> - AND lower(dt.table_name) like lower(concat(concat('%', #{tableName}), '%')) - </if> - <if test="tableComment != null and tableComment != ''"> - AND lower(dtc.comments) like lower(concat(concat('%', #{tableComment}), '%')) - </if> - order by create_time desc - </if> - <if test="@com.ruoyi.common.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 'xxl_job_%' AND table_name NOT LIKE 'gen_%' - AND table_name NOT IN (select table_name from gen_table) + 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 'xxl_job_%' AND D.NAME NOT LIKE 'gen_%' + AND D.NAME NOT IN (select table_name from gen_table) <if test="genTable.tableName != null and genTable.tableName != ''"> - AND lower(table_name) like lower(concat('%', #{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(table_comment) like lower(concat('%', #{genTable.tableComment}, '%')) + AND lower(CAST(F.VALUE AS nvarchar)) like lower(concat(N'%', N'${genTable.tableComment}', N'%')) </if> - order by create_time desc - </if> - <if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()"> + order by crdate desc </if> </select> @@ -213,13 +171,25 @@ </foreach> </if> <if test="@com.ruoyi.common.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 'xxl_job_%' AND D.NAME NOT LIKE 'gen_%' + 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="@com.ruoyi.common.helper.DataBaseHelper@isMySql()"> select table_name, table_comment, create_time, update_time from information_schema.tables - where table_comment <![CDATA[ <> ]]> '' and table_schema = (select database()) + where table_name NOT LIKE 'xxl_job_%' and table_name NOT LIKE 'gen_%' and table_schema = (select database()) and table_name = #{tableName} </if> <if test="@com.ruoyi.common.helper.DataBaseHelper@isOracle()"> @@ -250,6 +220,15 @@ and table_name = #{tableName} </if> <if test="@com.ruoyi.common.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 'xxl_job_%' AND D.NAME NOT LIKE 'gen_%' + AND D.NAME = #{tableName} </if> </select> -- Gitblit v1.9.3