`
- 浏览:
165047 次
- 性别:
- 来自:
成都
-
java web和servlet结合使用为数据库备份
使用Runtime类的方法备份数据库和web下载结合起来,就可以得到想要的功能.源代码如下(tomcat+mysql):
package org.liuxuan.jsp;
import java.io.*;
import java.text.SimpleDateFormat;
import javax.servlet.*;
import javax.servlet.http.*;
public class Backup extends HttpServlet ...{
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException ...{
SimpleDateFormat dateFm = new SimpleDateFormat("yyyy-MM-dd"); // 格式化当前系统日期
String dateTime = dateFm.format(new java.util.Date());
File file = null;
InputStream is = null;
String fileName = null;
int fileSize = 0;
String mysql = "mysqldump -uroot -p123456 rudisc > c:\" + dateTime+ ".sql";//mysql备份语句
try ...{
Process p=java.lang.Runtime.getRuntime().exec("cmd /c " + mysql);
while(true)...{
if(p.waitFor()==0) break; //直到进程结束,才退出循环
}
} catch (Exception e) ...{
e.printStackTrace();
}
file = new File("c:\"+dateTime+".sql");
is = new FileInputStream(file);
fileName = file.getName();
fileSize = (int) file.length();
fileName = toUTF8String(fileName);
// 设置下载文件使用的报头域。
response.setContentType("application/x-msdownload");
String str = "attachment; filename=" + fileName;
response.setHeader("Content-Disposition", str);
response.setContentLength(fileSize);
// 得到响应对象的输出流,用于向客户端输出二进制数据。
ServletOutputStream sos = response.getOutputStream();
byte[] data = new byte[2048];
int len = 0;
while ((len = is.read(data)) > 0) ...{
sos.write(data, 0, len); // 向浏览器输出文件数据
}
is.close(); // 关闭输入流
sos.close();// 关闭输出流
}
public void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException ...{
doGet(request, response);
}
public static String toUTF8String(String str) ...{
StringBuffer sb = new StringBuffer();
int len = str.length();
for (int i = 0; i < len; i++) ...{
char c = str.charAt(i);
if (c >= 0 && c <= 255) ...{
sb.append(c);
} else ...{
byte[] b;
try ...{
b = Character.toString(c).getBytes("UTF-8");
} catch (UnsupportedEncodingException ex) ...{
System.err.println(ex);
b = null;
}
for (int j = 0; j < b.length; j++) ...{
int k = b[j];
if (k < 0) ...{
k &= 255;
}
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
}
注意1:Runtime类的exec()方法是在单独的进程中执行指定的字符串命令,所以得在该进程结束后,才能找到备份 的sql文件.
注意2:由于是使用响应对象的getOutputStream()方法得到二进制输出流,而假如使用jsp来实现的话,由于隐含对象out的存在,很有可能导致冲突,异常的发生.所以我使用的是servlet来实现该功能.
数据库的恢复:
public static void load() {
try {
String fPath = "d:/xytx.sql";
Runtime rt = Runtime.getRuntime();
// 调用 mysql 的 cmd:
Process child = rt.exec("C:/Program Files/MySQL/MySQL Server 5.0/bin/mysql.exe -uroot -proot xytx ");
OutputStream out = child.getOutputStream();//控制台的输入信息作为输出流
String inStr;
StringBuffer sb = new StringBuffer("");
String outStr;
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(fPath), "utf8"));
while ((inStr = br.readLine()) != null) {
sb.append(inStr + "\r\n");
}
outStr = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(out, "utf8");
writer.write(outStr);
// 注:这里如果用缓冲方式写入文件的话,会导致中文乱码,用flush()方法则可以避免
writer.flush();
// 别忘记关闭输入输出流
out.close();
br.close();
writer.close();
System.out.println("");
} catch (Exception e) {
e.printStackTrace();
}
}
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
总结来说,这个BBS论坛课程设计涵盖了Web开发中的前端HTML、后端JAVA bean和Servlet技术,以及数据库设计和管理的关键概念。通过实际操作,学习者可以深入理解这些技术在实际项目中的应用,提高解决问题的能力,并为...
【标题】"jsp数据库备份.rar...综上,这个"jsp数据库备份.rar"压缩包提供了一个实践性的学习案例,涵盖了JSP开发、数据库管理和备份策略等多个方面的知识,对于想要深入了解Web开发和数据库管理的初学者来说极具价值。
本教程将深入讲解如何使用Quartz来实现每天定时备份数据库的功能,这对于Java Web应用程序尤其重要,确保数据的安全性和完整性。 1. **Quartz基础知识** - **核心概念**:Quartz主要由Job(任务)、Trigger...
在Java Web中,可以使用JDBC(Java Database Connectivity)接口来连接和操作数据库。此外,为了提高安全性,系统可能还采用了Spring Security进行身份验证和授权,保护用户数据的安全。 账单查询和历史记录查看...
JSP是Java的一种Web开发技术,用于动态生成HTML,结合Servlet可以实现服务器端的业务逻辑处理。 在压缩包内的文件“www.pudn.com.txt”可能是一个文档,提供了关于项目或源代码的额外信息,例如开发指南或用户手册...
综上所述,这个项目涉及了使用MyEclipse IDE进行Java Servlet和JDBC的开发,通过Servlet处理Web请求并与Oracle数据库交互,以实现数据的存取。开发者需要熟悉Java Web开发、数据库操作以及IDE的使用,才能有效地进行...
在这个项目中,“java servlet”与“MySQL数据库”结合,构建了一个关爱农民工的网络平台。Java Servlet是Java Web开发中的一个重要技术,它用于扩展服务器的功能,特别是在Web服务器上动态生成网页。在这里,...
Java Web技术是开发动态网站和企业级应用的重要工具,它结合了Java编程语言的强大功能和Web的交互性。本项目“【Java毕业设计】上传备份”便是一个基于Java Web的实现,旨在展示如何利用这些技术进行实际的系统开发...
这个系统利用了Java编程语言、JSP(JavaServer Pages)、Servlet和Mysql数据库技术,构建了一个稳定且功能齐全的平台。以下是对这些关键技术的详细说明: 1. **Java**:Java是一种广泛使用的面向对象的编程语言,...
结合给定的文件名称,我们推测"Java CA 20100621 0258.sql"可能是一个数据库备份文件,其中包含了Elecve系统的数据。这种文件通常用于恢复数据库到某个特定时间点的状态,或者用于在新环境中快速搭建系统。而"LAPSME...
在JSP中执行MySQL数据库备份,通常涉及创建一个Servlet或者JSP页面,该页面将调用Java代码来执行备份操作。 `mysql_util.java`可能是一个包含数据库操作逻辑的类文件。这个类可能包含了连接数据库、执行SQL语句...
本书可能涵盖了从基础到高级的Java Web技术,包括Servlet、JSP、JavaBean、MVC框架(如Spring MVC)、持久层框架(如Hibernate或MyBatis)以及Web服务器的配置和部署等。 1. **Servlet与JSP**:Servlet是Java Web的...
Java Web应用程序通常基于Servlet和JSP(JavaServer Pages)技术,结合JavaBean组件,构建出动态、交互式的Web应用。在这个图书馆管理系统中,Servlet负责处理客户端请求,执行业务逻辑,而JSP则用于展示用户界面,...
系统采用JAVA WEB技术栈,包括Servlet、JSP、JavaBean等基础组件,结合STRUTS2、Spring、Hibernate(SSH)三大框架进行构建,实现了业务逻辑与表现层的分离,提高了代码的可维护性和可扩展性。 STRUTS2作为MVC模式...
在本项目“软件工程课程设计-面向对象Java-Web”中,主要涵盖了使用Java技术和Web技术构建一个大学城体育信息管理系统。这个系统旨在管理和优化体育活动的信息,包括但不限于赛事安排、运动员信息、成绩记录等。下面...
2. **Servlet与JSP**:Java Web应用程序通常会使用Servlet处理HTTP请求,JSP用于动态生成视图。Application1.jws可能是Web应用的主入口点。 3. **JDBC连接数据库**:Java通过Java Database Connectivity (JDBC) API...
总结来说,这个学生管理系统是一个综合运用了Java Web技术,包括jsp、servlet和MySQL数据库的项目,具备数据挖掘、文件上传下载、数据库及Excel数据的导入导出等功能。对于学习Java Web开发或进行毕业设计的学生而言...
《网上购物系统(JAVA+SQL2000+SERVLET)》是一个综合性的Web应用程序,它基于JAVA、SQL SERVER、STRUTS和SERVLET技术构建,旨在提供一个便捷、安全的在线购物平台。该系统由前台和后台管理两大部分构成,涵盖了电子...
后端处理业务逻辑和数据操作,这里使用的是Java Web技术,如Servlet和JSP。 2. **MySQL数据库**:MySQL是一种流行的开源关系型数据库管理系统,适用于处理大量数据。在这个项目中,MySQL被用作存储书籍信息、用户...
通过这些代码,读者可以学习如何配置和使用关键的Java Web组件,如Servlet、Filter、Listener,以及如何处理MVC模式中的模型、视图和控制器。 此外,书中可能还涉及了数据库连接和查询、用户认证与授权、模板引擎的...