java程序 备份和还原SqlServer 2008 数据
来源:互联网 发布:c语言字符串长度函数 编辑:程序博客网 时间:2024/06/13 21:58
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.text.SimpleDateFormat;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;
public class DatabaseBack extends MultiActionController{
public void backDatabase(HttpServletRequest request,HttpServletResponse response) throws Exception{
String ip="192.168.1.250";
String port="1433";
String databaseName="MYBATIS";
String userName="sa";
String password="sa";
Connection conn = null;
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String connectionUrl="jdbc:sqlserver://"+ip+":"+port+";databaseName="+databaseName;
conn= DriverManager.getConnection(connectionUrl,userName,password);
String rootPath = request.getRealPath("/upload/backupdb/")+"\\\\";
//System.out.println(rootPath);
//数据备份
// String bkname = DataBackup(rootPath,databaseName, conn);
//数据还原
boolean result = DataReduction(rootPath,"20150311165216.bak","MYBATIS",conn);
response.getWriter().print(true);
}
/**
* 数据备份
* @param path
* @param db_name
* @param conn
* @return
*/
public String DataBackup(String rootPath,String db_name,Connection conn){
String bk_name = ""; //要返回的备份名称
//盘名是否正确
if(rootPath.lastIndexOf("\\") == -1) rootPath += "\\";
PreparedStatement stmt = null;
String sql = "";
try {
String file = new SimpleDateFormat("yyyyMMddHHmmss").format(new java.util.Date())+".bak";
sql = "backup database "+db_name+" to disk='"+rootPath+file+"' with format,name='full backup of "+db_name+"'";
stmt = conn.prepareStatement(sql);
stmt.executeUpdate();
bk_name = file; //返回的文件名
} catch (SQLException e) {
e.printStackTrace();
}finally{
try{stmt.close();} catch(Exception e){}
}
return bk_name;
}
/**
* 数据还原
* @param path
* @param bk_name
* @param db_name
* @param conn
* @return
*/
public boolean DataReduction(String rootPath,String bk_fileName,String db_name,Connection conn)
{
boolean result = false; //要返回的备份名称
//盘名是否正确
if(rootPath.lastIndexOf("\\") == -1) rootPath += "\\";
//------------------------
// 与数据库进行操作
//------------------------
PreparedStatement stmt = null;
String sql = "";
try
{
sql = "alter database "+db_name+" set offline with rollback immediate;";
sql += "restore database "+db_name+" from disk='" + rootPath+bk_fileName + "'";
sql += "with replace "; //解决备尚未备份数据库 数据库 的日志尾部
sql += "alter database "+db_name+" set onLine with rollback immediate;";
stmt = conn.prepareStatement(sql);
stmt.executeUpdate();
result = true;
}
//有异常
catch(Exception e)
{
e.printStackTrace();
}
//数据库操作释放
finally
{
try{stmt.close();} catch(Exception e){}
}
//返回
return result;
}
}注:参考网上资料所写
- java程序 备份和还原SqlServer 2008 数据
- sqlserver java 备份+还原
- SQLSERVER备份和还原
- SQLSERVER备份和还原
- sqlserver 数据备份与还原
- sqlServer 数据的备份还原和附加
- sqlserver数据库备份和还原
- 使用java代码备份和还原数据
- SQLServer-----SQLServer 2008 R2备份、还原数据库
- SQLServer数据库的备份和还原详解
- SQLServer数据库的备份和还原详解
- 存储过程备份和还原sqlserver
- mysql 数据备份和还原
- hbase备份和还原数据
- MySQL备份和还原数据
- MySQL数据备份和还原
- java对 mysql数据的备份和还原
- java对oracle数据进行备份和还原
- EXT 文件本地预览
- OpenCV保存成XML(FileStorage)和CSV(重载<<运算符)文件
- ext store加载数据时传参数
- ORACLE数据客户端安装
- EXT formPanel重置方法
- java程序 备份和还原SqlServer 2008 数据
- ural 1048. Superlong Sums 模拟
- Java 发送GET和POST请求
- Ext 简单页面和java后台数据交互
- FusionCharts简单应用
- Ext gridPanel 日期格式化
- 监听鼠标按键事件
- 常用的排序算法的时间复杂度和空间复杂度
- js 连接打开全屏新页面