介绍
本篇文章为大家展示了Springboot如何实现数据库备份还原,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。
<强>备份数据库强>
备份通过命令行对数据库导出到指定目录即可。我这里是一个得到请求,页面需要展示备份文件名称,大小和备份时间,代码中使用的日志是Slf4j,最终界面效果如图:
代码对我的原代码有所改动,关于备份文件的存放目录,我配置在了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如何实现数据库备份还原,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。