能给个JSP备份MS SQL的例子吗?给了马上给分~!
如题目~!要的是WEB形式的~!急用~!
谢谢~!刚学JSP,做一个课程设计~!
问题点数:100、回复次数:18Top
1 楼52800195(torney)回复于 2004-09-06 11:41:18 得分 0
顶一下~!Top
2 楼keespeed(存在)回复于 2004-09-06 11:50:28 得分 0
关注!!!!!!Top
3 楼AHUA1001(99)回复于 2004-09-06 12:02:30 得分 0
你的意思是作定时备份还是操作备份啊?
如果是定时备份,那就不需要用java了,MS SQL自带这种功能。
如果是操作备份,那就需要有这个权限,而且是很高的权限,那就不如直接用MS SQL的工具呢。
要不你用JAVA把数据库的内容读出来,写入一个文件,文本文件就可以,然后在用代码读回去,这样就太麻烦了。Top
4 楼aiwngye(graceping)回复于 2004-09-06 12:07:05 得分 50
用下面的方法可以实现(供参考)
private void callCmd(String pathfile) throws Exception {
String[] cmd=new String[3];
cmd[0] = "cmd.exe" ;
cmd[1] = "/C" ;
cmd[2] = "start /MIN " + pathfile;
Process pro = Runtime.getRuntime().exec(cmd);
}
public boolean backDb(String dbName, String path) throws Exception {
boolean flag = false;
Connection conn = ...; //获取数据库连接
Statement stmt = null;
String sql = null;
try {
File test = new File("d:\\dbBack");
if (!test.isDirectory()) {
//抛出异常
}
sql = "BACKUP DATABASE [" + dbName + "] TO " +
"DISK = N'" + dbBackPath + "' " +
"WITH INIT , NOUNLOAD , " +
"NAME = N'" + dbName + " backup', SKIP , STATS = 10, NOFORMAT";
stmt = conn.createStatement();
stmt.executeUpdate(sql);
File srcfile = new File(dbBackPath);
if (!srcfile.isFile()) {
//抛出异常
}
File descfile = new File(path);
String preCmd = "";
if (!descfile.isFile()) {
preCmd = "echo F|";
} else {
preCmd = "echo A|";
}
String cmd = preCmd + " xcopy " + dbBackPath + " " + path + " /e";
logger.debug(" backDb() : copy file cmd : " + cmd);
FileWriter fw = new FileWriter(new File(cmdDbFile));
fw.write(cmd);
fw.close();
callCmd(cmdDbFile);
flag = true;
} catch (Exception ex) {
throw ex;
} finally {
//关闭连接
}
return flag;
}
Top
5 楼52800195(torney)回复于 2004-09-06 12:44:25 得分 0
操作备份~!就像ASP的OA那里有数据备份的~!
谢谢楼上二位~!
楼上的~!你那用到什么类~!能帮我写放在WEB中可以运行的吗?
写一个javabean也行~!谢谢二位~!Top
6 楼xqi8(星期八)回复于 2004-09-06 12:52:51 得分 0
upTop
7 楼52800195(torney)回复于 2004-09-06 18:06:00 得分 0
UP一下~!Top
8 楼CHLC(Cesar)回复于 2004-09-06 18:09:42 得分 0
upTop
9 楼52800195(torney)回复于 2004-09-06 20:35:07 得分 0
upTop
10 楼mickeylm(枫叶)回复于 2004-09-06 21:20:07 得分 0
帮你顶Top
11 楼minghuitian(明月)回复于 2004-09-06 22:33:20 得分 0
gzTop
12 楼makay()回复于 2004-09-07 00:34:16 得分 0
markTop
13 楼guyizh(小钧)回复于 2004-09-07 14:42:39 得分 0
把这个放到数据语句集里有可以的了:
BACKUP DATABASE ge_0001 TO DISK = 'd:\backup.dat'Top
14 楼power17()回复于 2004-09-07 14:58:19 得分 0
请教楼上的。要是想还原又用什么语句。Top
15 楼hary90(hary90)回复于 2004-09-07 15:19:43 得分 0
upTop
16 楼vampirewp()回复于 2004-09-07 15:54:33 得分 50
根据楼上aiwngye(graceping) 备份数据库的方法,写了个还原的方法
public boolean restoreDb(String dbName, String path) throws Exception {
boolean flag = false;
Connection conn = ...;//得到连接
if (conn == null) {
//
}
Statement stmt = null;
String sql = null;
try {
File test = new File("d:\\dbBack");
if (!test.isDirectory()) {
//异常处理
}
File srcfile = new File(path);
File descfile = new File(dbRestorePath);
String preCmd = "";
if (!srcfile.isFile()) {
//异常处理
}
if (descfile.isFile() ) {
preCmd = "echo A|";
} else {
preCmd = "echo F|";
}
String cmd = preCmd + " xcopy " + path + " " + dbRestorePath + " /e";
FileWriter fw = new FileWriter(new File(cmdDbFile));
fw.write(cmd);
fw.close();
callCmd(cmdDbFile);
Thread.sleep(30*1000);
sql = "Exec sp_dboption '" + dbName + "','single user','True' " +
" RESTORE DATABASE [" + dbName+"] " +
" FROM disk=N'" + dbRestorePath + "' "+
" with file=1, RECOVERY,replace ";
stmt = conn.createStatement();
stmt.executeUpdate(sql);
flag = true;
} catch (Exception ex) {
//异常处理
} finally {
//释放资源
}
return flag;
}
Top
17 楼xqi8(星期八)回复于 2004-09-07 20:50:12 得分 0
upTop
18 楼panzi667(迅雷免费电影下载社区http://www.woyaola.net)回复于 2004-09-07 21:05:05 得分 0
vampirewp() ( ) 信誉:100 的方法能实现么?Top




