Vue springboot 备份数据库

本文详细介绍了一个基于SpringBoot的备份与恢复系统的设计与实现,包括Controller、Service、实现类及常量配置,同时涵盖了前后端交互过程,前端使用Vue进行数据展示与操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

后端 Springboot

Controller

@RestController
@RequestMapping("api")
public class BackupController {
   
	
    @Autowired
    private BackupService backupService;
	// 获取备份记录
    @GetMapping(value = "/backup/backup")
    public ResponseEntity getBackup(){
   
        return new ResponseEntity(backupService.queryBackup(),HttpStatus.OK);
    }
	// 备份
    @PostMapping(value = "/backup/backup")
    public ResponseEntity backup(@Validated @RequestBody String name){
   
        backupService.backup(name);
        return new ResponseEntity(HttpStatus.CREATED);
    }
	// 还原
    @PutMapping(value = "/backup/restore")
    public ResponseEntity restore(@Validated @RequestBody String name){
   
        backupService.restore(name);
        return new ResponseEntity(HttpStatus.OK);
    }
	// 删除备份记录
    @DeleteMapping(value = "/backup/del")
    public ResponseEntity delBackup(@Validated @RequestBody String name){
   
        backupService.delBackup(name);
        return new ResponseEntity(HttpStatus.OK);
    }
}

BackupService

public interface BackupService {
   
    List<Map<String, String>> queryBackup();
    void backup(String name);
    void restore(String name);
    void delBackup(String name);
}

BackupServiceImpl

功能实现代码如下,BackupConstants为常量接口,此外还需要FileUtilsMySqlBackupRestoreUtils用于文件操作(删除备份的sql文件)、数据库sql语句执行(备份和还原)

public class BackupServiceImpl implements BackupService {
   
    @Override
    public List<Map<String, String>> queryBackup(){
   
        List<Map<String, String>> backupRecords = new ArrayList<>();
        File restoreFolderFile = new File(BackupConstants.RESTORE_FOLDER);
        if(restoreFolderFile.exists()) {
   
            for(File file:restoreFolderFile.listFiles()) {
   
                Map<String, String> backup = new HashMap<>();
                backup.put("title", file.getName());
                backupRecords.add(backup);
            }
        }
        // 按时间戳排序,新备份在前面
        backupRecords.sort((o1, o2) -> o2.get("title").compareTo(o1.get("title")));
        return backupRecords;
    }

    @Override
    public void backup(String name){
   
        String host = BackupConstants.HOST;
        String userName = BackupConstants.USER_NAME;
        String password = BackupConstants.PASSWORD;
        String database = BackupConstants.DATABASE;
        String backupFolderPath = BackupConstants.BACKUP_FOLDER + name + File.separator;
        String fileName = name
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值