From df6867ee052790c3d690f341c422540e47ae5ec3 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 16 一月 2023 10:52:14 +0800 Subject: [PATCH] update 优化 默认开启复杂结构 resultMap 自动映射 简化xml编码(多结构实体需带上主键id) --- ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml | 171 +++++++++++++++++++++++++++++++------------------------- 1 files changed, 94 insertions(+), 77 deletions(-) diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml index c2a39fd..4d4e68e 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -4,53 +4,14 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.generator.mapper.GenTableMapper"> - <resultMap type="GenTable" id="GenTableResult"> - <id property="tableId" column="table_id" /> - <result property="tableName" column="table_name" /> - <result property="tableComment" column="table_comment" /> - <result property="subTableName" column="sub_table_name" /> - <result property="subTableFkName" column="sub_table_fk_name" /> - <result property="className" column="class_name" /> - <result property="tplCategory" column="tpl_category" /> - <result property="packageName" column="package_name" /> - <result property="moduleName" column="module_name" /> - <result property="businessName" column="business_name" /> - <result property="functionName" column="function_name" /> - <result property="functionAuthor" column="function_author" /> - <result property="genType" column="gen_type" /> - <result property="genPath" column="gen_path" /> - <result property="options" column="options" /> - <result property="createBy" column="create_by" /> - <result property="createTime" column="create_time" /> - <result property="updateBy" column="update_by" /> - <result property="updateTime" column="update_time" /> - <result property="remark" column="remark" /> - <collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" /> + <!-- 澶氱粨鏋勫祵濂楄嚜鍔ㄦ槧灏勯渶甯︿笂姣忎釜瀹炰綋鐨勪富閿甶d 鍚﹀垯鏄犲皠浼氬け璐� --> + <resultMap type="com.ruoyi.generator.domain.GenTable" id="GenTableResult"> + <id property="tableId" column="table_id" /> + <collection property="columns" javaType="java.util.List" resultMap="GenTableColumnResult" /> </resultMap> - <resultMap type="GenTableColumn" id="GenTableColumnResult"> - <id property="columnId" column="column_id" /> - <result property="tableId" column="table_id" /> - <result property="columnName" column="column_name" /> - <result property="columnComment" column="column_comment" /> - <result property="columnType" column="column_type" /> - <result property="javaType" column="java_type" /> - <result property="javaField" column="java_field" /> - <result property="isPk" column="is_pk" /> - <result property="isIncrement" column="is_increment" /> - <result property="isRequired" column="is_required" /> - <result property="isInsert" column="is_insert" /> - <result property="isEdit" column="is_edit" /> - <result property="isList" column="is_list" /> - <result property="isQuery" column="is_query" /> - <result property="queryType" column="query_type" /> - <result property="htmlType" column="html_type" /> - <result property="dictType" column="dict_type" /> - <result property="sort" column="sort" /> - <result property="createBy" column="create_by" /> - <result property="createTime" column="create_time" /> - <result property="updateBy" column="update_by" /> - <result property="updateTime" column="update_time" /> + <resultMap type="com.ruoyi.generator.domain.GenTableColumn" id="GenTableColumnResult"> + <id property="columnId" column="column_id"/> </resultMap> <select id="selectPageDbTableList" resultMap="GenTableResult"> @@ -85,44 +46,46 @@ order by create_time desc </if> <if test="@com.ruoyi.common.helper.DataBaseHelper@isPostgerSql()"> - </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_%' + 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) - <if test="tableName != null and tableName != ''"> - AND lower(table_name) like lower(concat('%', #{tableName}, '%')) + <if test="genTable.tableName != null and genTable.tableName != ''"> + AND lower(table_name) like lower(concat('%', #{genTable.tableName}, '%')) </if> - <if test="tableComment != null and tableComment != ''"> - AND lower(table_comment) like lower(concat('%', #{tableComment}, '%')) + <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="@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()"> </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 NOT IN (select table_name from gen_table) + <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> @@ -149,15 +112,45 @@ </foreach> </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 in + <foreach collection="array" item="name" open="(" separator="," close=")"> + #{name} + </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()"> @@ -171,8 +164,32 @@ and lower(dt.table_name) = #{tableName} </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 = #{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