From 7f1356a447d290c186fe047af557e050497e39e4 Mon Sep 17 00:00:00 2001 From: 疯狂的狮子li <15040126243@163.com> Date: 星期一, 14 三月 2022 14:05:37 +0800 Subject: [PATCH] update 重构代码生成 多数据库sql加载 使用xml特性动态切换sql --- ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml | 125 ++++++++++++++++++++++++++++++++++++----- 1 files changed, 110 insertions(+), 15 deletions(-) diff --git a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml index cb437b4..306f7af 100644 --- a/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml +++ b/ruoyi-generator/src/main/resources/mapper/generator/GenTableMapper.xml @@ -54,30 +54,125 @@ </resultMap> <select id="selectPageDbTableList" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time - from information_schema.tables - ${ew.getCustomSqlSegment} + <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 'qrtz_%' AND table_name NOT LIKE 'gen_%' + AND table_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}, '%')) + </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="@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 'QRTZ_%' AND dt.table_name NOT LIKE 'GEN_%' + AND lower(dt.table_name) NOT IN (select table_name from gen_table) + <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="@com.ruoyi.common.helper.DataBaseHelper@isPostgerSql()"> + </if> + <if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()"> + </if> </select> <select id="selectDbTableList" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time - from information_schema.tables - ${ew.getCustomSqlSegment} + <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 'qrtz_%' 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 'QRTZ_%' 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()"> + </if> </select> <select id="selectDbTableListByNames" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_name NOT LIKE 'xxl_job_%' and table_name NOT LIKE 'gen_%' and table_schema = (select database()) - and table_name in - <foreach collection="array" item="name" open="(" separator="," close=")"> - #{name} - </foreach> + <if test="@com.ruoyi.common.helper.DataBaseHelper@isMySql()"> + select table_name, table_comment, create_time, update_time from information_schema.tables + where table_name NOT LIKE 'xxl_job_%' and table_name NOT LIKE 'gen_%' and table_schema = (select database()) + and table_name in + <foreach collection="array" item="name" open="(" separator="," close=")"> + #{name} + </foreach> + </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 dt.table_name NOT IN (select table_name from gen_table) + and lower(dt.table_name) in + <foreach collection="array" item="name" open="(" separator="," close=")"> + #{name} + </foreach> + </if> + <if test="@com.ruoyi.common.helper.DataBaseHelper@isPostgerSql()"> + </if> + <if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()"> + </if> </select> <select id="selectTableByName" parameterType="String" resultMap="GenTableResult"> - select table_name, table_comment, create_time, update_time from information_schema.tables - where table_comment <![CDATA[ <> ]]> '' and table_schema = (select database()) - and table_name = #{tableName} + <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()) + and table_name = #{tableName} + </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 dt.table_name NOT IN (select table_name from gen_table) + and lower(dt.table_name) = #{tableName} + </if> + <if test="@com.ruoyi.common.helper.DataBaseHelper@isPostgerSql()"> + </if> + <if test="@com.ruoyi.common.helper.DataBaseHelper@isSqlServer()"> + </if> </select> <select id="selectGenTableById" parameterType="Long" resultMap="GenTableResult"> -- Gitblit v1.9.3