Springboot如何实现数据库备份还原

  介绍

本篇文章为大家展示了Springboot如何实现数据库备份还原,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

<强>备份数据库

备份通过命令行对数据库导出到指定目录即可。我这里是一个得到请求,页面需要展示备份文件名称,大小和备份时间,代码中使用的日志是Slf4j,最终界面效果如图:

 Springboot如何实现数据库备份还原

代码对我的原代码有所改动,关于备份文件的存放目录,我配置在了application.properties配置文件中,通过一个配置类ProjectUrlConfig去获取,代码中的 projectUrlConfig.getBackPath () 即为文件目录,与文件名拼接成完整的路径。

/*备份数据库*/@GetMapping (“backupSQL")
  公共ModelAndView backupSQL (Map<字符串,Object>地图){
  字符串文件名=癰ackup_"+新日期().getTime () +“.sql";
  字符串cmd=? mysqldump -uroot -p123456 dbName祝辞“;+ projectUrlConfig.getBackPath() +文件名;//- u后的根为mysql数据库用户名:- p后接的123456年为该用户密码,注意不要有空格;dbName填写需要备份数据的数据库名称,大于号后接生成文件路径
  尝试{
  Runtime.getRuntime () .exec (cmd);
  }捕捉(异常e) {
  log.error(“【备份数据库】失败:{}“,e.getMessage ());
  map.put (“msg" e.getMessage ());
  返回新ModelAndView(“普通/error",地图);
  }
  log.info(“【备份数据库】成功,SQL文件:{}“,文件名);
  map.put (“msg"“备份数据库成功“),返回新ModelAndView(“普通/success",地图);
  }

备份虽然在cmd命令行中使用“ mysql -uroot -p123456 dbName & lt;SQL文件路径 "可以对数据库还原,尝试使用时没有发现报错但数据库并未还原,最后通过 OutputStreamWriter 来实现。

 @GetMapping (“rollback")
  公共ModelAndView回滚(@RequestParam (“filename")字符串文件名,Map<字符串,Object>地图){
  字符串路径=projectUrlConfig.getBackPath() +文件名;
  尝试{
  运行时的运行时=Runtime.getRuntime ();
  过程过程=runtime.exec (“mysql -uroot -p123456——default-character-set=utf8 dbName");
  OutputStream OutputStream=process.getOutputStream ();
  FileInputStream fis=new FileInputStream(路径);
  InputStreamReader isr=new InputStreamReader (fis,“utf-8");
  BufferedReader br=new BufferedReader (isr);
  字符串str=零;
  StringBuffer某人=new StringBuffer ();
  在((str=br.readLine ()) !=null) {
  sb.append (str +“\ r \ n");
  }
  str=sb.toString ();
  OutputStreamWriter作家=new OutputStreamWriter (outputStream、“utf-8");
  writer.write (str);
  writer.flush ();
  如果(作家!=null) {
  writer.close ();
  }
  如果(br !=null) {
  br.close ();
  }
  如果(isr !=null) {
  isr.close ();
  }
  如果(fis !=null) {
  fis.close ();
  }
  如果(outputStream !=null) {
  outputStream.close ();
  }
  }捕捉(异常e) {
  【还log.error(“原数据库】失败:{}“,e.getMessage ());
  map.put (“msg" e.getMessage ());
  返回新ModelAndView(“普通/error",地图);
  }
  【还log.info(“原数据库】成功,还原文件:{}“,文件名);
  map.put (“msg",“还原数据库成功“),返回新ModelAndView(“普通/success",地图);
  }

上述内容就是Springboot如何实现数据库备份还原,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

Springboot如何实现数据库备份还原