最近客户有个需求,希望在后台增加手动备份功能,将数据导出下载保存。
当然,此方法不适用于海量数据的备份,这只适用于少量数据的sql备份。
这是我生成的sql文件,以及sql文件里的insert语句,已亲测,可以直接执行:
项目是SSM框架,接下来就展示我的实现代码:
首先是接受字段的实体类:
@Data
public class ColumnsDto {
/**
* 表结构的主要字段*
*/
private String column_name;
//该字段则是表字段的数据类型 暂时不需要
private String data_type;
}
然后是用的到两个主要的sql:
1.此sql用于查询表的有效字段信息(table_schema:当前的数据库名)
<select id="queryColumnsByTableName" resultType="com.hle.monitor.entity.vo.ColumnsDto">
SELECT
column_name,
data_type
FROM
information_schema.COLUMNS
WHERE
table_name = #{tableName}
AND table_schema = 'supervision_data'
ORDER BY ordinal_position
</select>
2.再用sql查询表的所有数据:(注意:此处表名需要要用$而不是#号)
<select id="findBackupAll" resultType="java.util.Map">
select * from ${tableName}
</select>
此处我省略了相应的service和mapper文件内容,直接展示最重要的controller代码:
<