简单的数据库备份与恢复类

/**

* 数据库备份与恢复类

* @author Administrator

*/

public class Beifen {

/**

* 数据库备份

* @param cmd 备份命令

* @param filePath 备份文件保存位置

* @return

* @throws IOException

*/

public static boolean sqlDump(String cmd, String filePath)

throws IOException {

boolean falg = false;

InputStream is = null;

InputStreamReader isr = null;

BufferedReader br = null;

FileOutputStream fos = null;

BufferedWriter bw = null;

try {

Runtime run = Runtime.getRuntime();

// cmd 命令:

Process p = run.exec(cmd);

is = p.getInputStream();// 控制台的输出信息作为输入流

isr = new InputStreamReader(is, "UTF-8");// 设置输入流编码格式

br = new BufferedReader(isr);

// 将控制台输入信息写入到文件输出流中

fos = new FileOutputStream(filePath);

bw = new BufferedWriter(new OutputStreamWriter(fos, "UTF-8"));

String temp = null;

while ((temp = br.readLine()) != null) {

bw.write(temp);

bw.newLine();

}

falg = true;

System.out.println("/* Dump  SQL File " + filePath + " OK! */");

} catch (IOException e) {

throw new RuntimeException("请将mysql命令添加到path中!", e);

} finally {

bw.flush();

bw.close();

br.close();

}

return falg;

}

/**

* 恢复数据库

* @param cmd 恢复命令

* @param sqlPath 恢复文件

* @throws IOException

*/

public static void sqlLoad(String cmd, String sqlPath) throws IOException {

OutputStreamWriter writer = null;

OutputStream out = null;

BufferedReader br = null;

try {

Runtime rt = Runtime.getRuntime();

Process child = rt.exec(cmd);

out = child.getOutputStream();// 控制台的输入信息作为输出流

// 输入流

br = new BufferedReader(new InputStreamReader(new FileInputStream(

sqlPath), "utf8"));

// 输出流

writer = new OutputStreamWriter(out, "utf8");

String inStr;

while ((inStr = br.readLine()) != null) {

writer.write(inStr);

writer.write("\r\n");

}

writer.flush();

System.out.println("/* Load  SQL File " + sqlPath + " OK! */");

} catch (Exception e) {

e.printStackTrace();

} finally {

//输入输出流

out.close();

br.close();

writer.close();

}

}

/**

* 测试的main方法

* @param args

*/

public static void main(String[] args) {

//备份数据库

boolean b=false;

try {

b =

sqlDump("E:/mysql-5.6.14-winx64/bin/mysqldump -uroot -proot 51sql","c:y_copy04.sql");

} catch (IOException e){

e.printStackTrace();

}

System.out.println("---------------->"+b);

//恢复数据库

//  try {

// sqlLoad("E:/mysql-5.6.14-winx64/bin/mysql.exe -uroot -proot  51sql"

//  ,"c:y_copy04.sql");

// } catch (IOException e) {

// e.printStackTrace();

// }

}

}

时间: 2024-10-08 10:13:53

简单的数据库备份与恢复类的相关文章

PHP实现的一个简单的数据库操作类

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $username; private $password; public $default_db; public $link; // 声明构造函数 public f

PHP实现的一个简单的数据库操作类(修改版)

PHP实现的一个简单的数据库操作类 实现的功能: - 在实例化的时候能设置连接字符集 - 在实例化的时候能连接数据库 - 在实例化的时候能选择默认数据库 - 销毁对象时关闭数据库 代码如下: <?php // 数据库操作类MySQLDB class MySQLDB { // 声明属性 private $server; private $port; private $username; private $password; public $default_db; private $charset;

GXDatabaseUtils非常简单的数据库操作类

GXDatabaseUtils, 有任何问题,可以留言. 简化了表的创建 简化了sql语句的生成 简化了数据库的操作

DataAccess通用数据库访问类,简单易用,功能强悍

以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展datarow转实体类,也可以搭配dapper.net实现更强大的功能. /// <summary> /// 通用数据库访问类,支持多种数据库,无直接依赖某个数据库组件 /// 作者:左文俊 /// 日期:2016-6-3 /// </summary> public class DataAc

ORACLE数据库备份与恢复详解

ORACLE数据库备份与恢复详解 学习过程中的总结,有兴趣不妨看看,如果有不对的地方,高手不要留情!! Oracle的备份与恢复有三种标准的模式,大致分为两 大类,备份恢复(物理上的)以及导入导出(逻辑上的),而备份恢复又可以根据数据库的工作模式分为非归档模式(Nonarchivelog-style) 和归档模式(Archivelog-style),通常,我们把非归档模式称为冷备份,而相应的把归档模式称为热备份,他们的关系如下所示 三种方式各有优点,我们做个比较(这个是用Fireworks画的,

Android打造属于自己的数据库操作类。

1.概述 开发Android的同学都知道sdk已经为我们提供了一个SQLiteOpenHelper类来创建和管理SQLite数据库,通过写一个子类去继承它,就可以方便的创建.管理数据库.但是当我们需要去做增删改查的操作的时候,就得通过getWritableDatabase获取一个SQLiteDataBase然后老老实实去写操作值的put以及查询返回的Cursor处理,其实我们可以搞一个对象来帮我们干这些事情,打造属于你自己的数据库操作类. 2.操作类的初显形 假设现在我们什么都没有,我们要去搞一

Oracle数据库备份与恢复的三种方法

转自blueskys567原文Oracle数据库备份与恢复的三种方法, 2006-10. 有删改 Oracle数据库有三种标准的备份方法,它们分别是导出/导入(EXP/IMP).热备份和冷备份. 导出备件是一种逻辑备份,冷备份和热备份是物理备份. 一. 导出/导入(Export/Import) 利用Export可将数据从数据库中提取出来,利用Import则可将提取出来的数据送回到Oracle数据库中去. 1. 简单导出数据(Export)和导入数据(Import) Oracle支持三种方式类型的

一个C#的XML数据库访问类

原文地址:http://hankjin.blog.163.com/blog/static/33731937200942915452244/ 程序中不可避免的要用到配置文件或数据,对于数据量比较小的程序,部署数据库花费的时间就显得浪费了,因此用XML来存储不妨为一个很好的办法,而且结合C#的DataSet,我们可以很轻易的封装出一个代码简单而功能强大的数据访问类XMLConfigconfig.xml<root>  <table1>    <rowName1>hello&l

PHP 数据库操作类:ezSQL

EZSQL类介绍: 下载地址:http://www.jb51.net/codes/26393.html ezsql是一个小型的快速的数据库操作类,可以让你很容易地用PHP操作各种数据库( MySQL.oracle8/9 .interbase.FireBird.PostgreSQL.MS-SQL.sqlite.sqlite C++). 在你的脚本开头是要包含一个一个PHP文件.然后,你就可以使用更小.更容易的一套ezsql函数来代替标准的PHP数据库函数. 它会自动缓存的查询结果,提供了一系列简单