@RequestMapping("/importSQL")
public void importSQL(MultipartFile file, HttpServletRequest request,
HttpServletResponse response) throws FileNotFoundException,
IOException {
String database = "elesys"; // 需要备份的数据库名
String fileName = file.getOriginalFilename();
System.out.println("现在时间是" + new Date());
Runtime runtime = Runtime.getRuntime();
String basePath = request.getSession().getServletContext()
.getRealPath("/");
String filePath2 = basePath + request.getParameter("filePath");
System.out.println(basePath);
System.out.println(filePath2);
try {
File file1 = new File(basePath, fileName);
FileUtils.writeByteArrayToFile(file1, file.getBytes());
String filePath = basePath + fileName; // sql文件路径
String stmt = "mysql -h localhost -uroot -p123456 " + database
+ "< " + filePath;
System.out.println(stmt);
String[] command = { "cmd", "/c", stmt };
Process process = runtime.exec(command);
// 若有错误信息则输出
InputStream errorStream = process.getErrorStream();
System.out.println(IOUtils.toString(errorStream, "gbk"));
// 等待操作
int processComplete = process.waitFor();
if (processComplete == 0) {
System.out.println("还原成功.");
} else {
throw new RuntimeException("还原数据库失败.");
}
} catch (Exception e) {
e.printStackTrace();
}
}
<form action="<%=path %>/importSQL" method="post" enctype="multipart/form-data">
<strong style="font-size: 36px;font-family: '楷体'">数据库导出备份</strong> <br />
<input type="file" name="file" id="file" value="上传文件"/>
<button class="button bg-main icon-check-square-o"
type="submit" style="margin:80px 0px;"> 导入</button>
</form>
</div>