创新实训个人进度博客(11)——SpringBoot备份mysql数据库

项目开发接近deadline了,打算把数据库的备份做一下,能够让管理员在网页上直接进行数据库的备份、还原等操作。

备份

备份接口

    // 备份
    @PreAuthorize("@permission.CheckUser() == 1")
    @PostMapping("/backup/{name}")
    public ResponseEntity backup(@PathVariable("name") String name,
                                 HttpServletRequest request,
                                 HttpServletResponse response){
   
   
        backupService.backup(name,request,response);
        return new ResponseEntity(HttpStatus.CREATED);
    }
    

这里的name是前端传来的文件名

备份方法

    @Override
    public ResponseResult backup(String name, HttpServletRequest request, HttpServletResponse response){
   
   
        log.info("开始进行数据库备份******************************");
        Admin admin = adminService.checkAdmin(request,response);
        if(admin == null || admin.getAdminId() == null){
   
   
            log.info("没有登陆");
            return ResponseResult.ACCOUNT_NOT_LOGIN();
        }
        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;
        log.info("校验成功,开始进行备份");
        try {
   
   
            boolean success = MySqlBackupRestoreUtils.backup(host, userName, password, backupFolderPath, fileName, database);
            if(!success) {
   
   
                log.info("数据备份失败");
                return ResponseResult.FAILED("备份失败!");
            }
        } catch (Exception e) {
   
   
            System.out.println(e);
        }
        log.info("备份成功!文件存储在:  "+backupFolderPath+fileName);
        return ResponseResult
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值