业务需求:需要一键清除数据,将库中以“obj_”前缀开头的表数据全部清除。
1.查询以obj_前缀开头的表的截断语句:
mapper接口方法:
/**
* 查询所有obj开头的表的数据删除sql
*/
List<String> selectAllObjTableRemoveSql();
xml:
<select id="selectAllObjTableRemoveSql" resultType="java.lang.String">
SELECT
CONCAT( 'truncate table ', TABLE_NAME, ';' )
FROM
information_schema.TABLES
WHERE
table_schema = 'sc-gateway'
AND TABLE_NAME LIKE 'obj_%';
</select>
其中的“obj_”就是需要匹配的表名称字符
查询的结果是一个List<String>,其中的每项就是一张表的截断语句
后续只要将每个语句执行一遍就可以了
直接将整个String传过去执行
<delete id="removeDataBySql" parameterType="String">
${value}
</delete>