JAVA 程式碼備份資料庫與恢復
備份的是Mysql資料庫!
程式碼如下,自己執行下看看吧!廢話不說了!
package backup.back;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
/**
* 資料庫的備份與還原操作
*
* @Date 2017年3月7日
*/
public class DbOperate {
/**
* 資料庫表備份
*
* @throws Exception
*/
public static void tableBackup(String dbUser,String dbPass,String dbHost,String dbPort,String dbName,String savePath, String tableName)
throws Exception {
Runtime runtime = Runtime.getRuntime();
// -u後面是使用者名稱,-p是密碼-p後面最好不要有空格,-family是資料庫的名字
Process process = runtime.exec("mysqldump -h " + dbHost + " -P "
+ dbPort + " -u " + dbUser + " -p" + dbPass + " " + dbName
+ " " + tableName);
InputStream inputStream = process.getInputStream();// 得到輸入流,寫成.sql檔案
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while ((s = br.readLine()) != null) {
sb.append(s + "\r\n");
}
s = sb.toString();
File file = new File(savePath);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
/**
* 備份資料庫
*
* @param savePath
* @throws Exception
*/
public static void dbBackup(String dbUser, String dbPass, String dbHost,
String dbPort, String dbName, String savePath) throws Exception {
Runtime runtime = Runtime.getRuntime();
// -u後面是使用者名稱,-p是密碼-p後面最好不要有空格,-family是資料庫的名字
Process process = runtime.exec("mysqldump -h " + dbHost + " -P "
+ dbPort + " -u " + dbUser + " -p" + dbPass + " " + dbName);
InputStream inputStream = process.getInputStream();// 得到輸入流,寫成.sql檔案
InputStreamReader reader = new InputStreamReader(inputStream);
BufferedReader br = new BufferedReader(reader);
String s = null;
StringBuffer sb = new StringBuffer();
while ((s = br.readLine()) != null) {
sb.append(s + "\r\n");
}
s = sb.toString();
File file = new File(savePath);
file.getParentFile().mkdirs();
FileOutputStream fileOutputStream = new FileOutputStream(file);
fileOutputStream.write(s.getBytes());
fileOutputStream.close();
br.close();
reader.close();
inputStream.close();
}
/**
* 執行sql檔案
*
* @param savePath
* @throws Exception
*/
public static void dbRecover(String dbUser, String dbPass, String dbHost,
String dbPort, String dbName, String savePath) throws Exception {
// 獲取操作資料庫的相關屬性
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("mysql -h" + dbHost + " -P " + dbPort
+ " -u " + dbUser + " -p" + dbPass
+ " --default-character-set=utf8 " + dbName);
OutputStream outputStream = process.getOutputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(savePath)));
String str = null;
StringBuffer sb = new StringBuffer();
while ((str = br.readLine()) != null) {
sb.append(str + "\r\n");
}
str = sb.toString();
OutputStreamWriter writer = new OutputStreamWriter(outputStream,
"utf-8");
writer.write(str);
writer.flush();
outputStream.close();
br.close();
writer.close();
}
public static void main(String[] args) {
/*try {
dbBackup("root", "ROOT", "localhost","3306", "EPDB", "D:/back.sql");
System.out.println("完成!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}*/
try {
dbRecover("root", "ROOT", "localhost","3306", "EPDB", "D:/back.sql");
System.out.println("完成!");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
相關推薦
JAVA 程式碼備份資料庫與恢復
備份的是Mysql資料庫! 程式碼如下,自己執行下看看吧!廢話不說了! package backup.back; import java.io.BufferedReader; import java.io.File; import java.io.File
用generator 根據oracle表生成java程式碼,資料庫與程式碼欄位不一致
前兩天用generator生成java程式碼時發現,生成的javabean和資料庫裡的欄位對應不上,不是少幾個就是有幾個欄位不一樣,感覺很怪異,後來發現日誌裡邊這個錶轉換成bean是日誌列印了好幾遍,所有怪事都是有原因的,我開始研究generator原始碼。 用IDEA跟蹤
MongoDB 通過 Java 程式碼 CRUD 資料庫與集合
本文導讀 相比 Java 操作 關係型資料庫(如 Mysql) 而言,Java 操作 noSql 更加簡單,因為沒有事務這些操作 Java 操作 Mysql 資料庫需要 Mysql 的連線驅動包,同理 Java 操作 MongoDB 也需要連線驅動包,叫 mongo-j
Mysql:Java程式碼實現資料庫定時備份與還原詳解
一、目的 使用java程式碼實現定時執行Mysql備份與還原。 二、思路 先寫好一個定時器,每隔多少時間執行一次備份 備份方法為,通過java向命令列寫入命令執行 首先在cmd中模擬備份,測試成功後 使用java程式碼實現資料備份功能
用Java程式碼備份和還原MySQL資料庫
package com.liuzy.javaopen.servlet; import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream;
MongoDB 備份(mongodump)與恢復(mongorestore)
bsp 還原 rop ron ont mon bject 存在 mongodb 備份: mongodump -h localhost:27017 -d test -o "D:\data\db1" 還原備份: D:\mongodb\bin>mongorestore
xtrabackup備份(MySQL備份)與恢復
xtrabackup備份(MySQL備份)與恢復 1. innobackupex引數選項 --no-timestamp: 不建立一個時間戳 --defaults-file=[MY.CNF] //指定配置檔案:只能從給定的檔案中讀取預設選項。 且必須作為命令列上的第一個選項;必須是一個真實的檔案,它不
關於使用java程式碼將資料庫裡的表匯出到Excel中
package CurriculumDesign; import java.io.FileOutputStream; import java.sql.Connection; import java.sql.DriverManager; import java.sql.PreparedStatemen
壓縮備份資料庫與網站資料(mysql不停止的方法)簡易實用BAT
@echo off::Author: jerry::Date:2018-11-20echo.echo MySQL資料庫及網站程式備份指令碼echo echo Author: jerryecho Date:2018-11-20echo 備份日期:%date%echo 備份時間:%time%echo.echo s
jdbc 中通過Java程式碼連線資料庫
示例程式碼 1.通過建立一個類 寫出連線資料庫的相關屬性 username,password,URL,Connection Statement . Resultset 物件 2.載入並註冊MySQL的驅動——在Java程式中,可以通過 “Class.forName(“
從生產環境的postgre資料庫伺服器備份資料庫並恢復資料庫到本地
一、從生產環境的postgre資料庫伺服器備份資料庫 1、開始-執行-cmd 彈出dos控制檯 2、在控制檯裡,進入PostgreSQL安裝路徑的bin目錄下:指令:cd C:\Program Files\PostgreSQL\9.0\bin 3、pg_dump -h (postgre_serv
mysqldump備份資料庫 mysql恢復資料庫
備份: 1、備份全部資料庫的資料和結構 mysqldump -uroot -pjsb -A > /bk/all.sql -A: 備份所有資料庫=--all-databases 2、 備份全部資料庫的結構(加 -d 引數) mysqldump -ur
java程式碼建立資料庫表
package com.soft.share.util; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Statement; import java.util.Ar
java程式碼連線資料庫
jdbc的知識點: JDBC(Java DataBase Connectivity,java資料庫連線)是一種用於執行SQL語句的Java API, 可以為多種關係資料庫提供統一訪問,它由一組用Java語言編寫的類和介面組成。 JDBC提供了一種基準,據此可以構建更高階的
java程式碼獲取資料庫表裡資料的總數
在訪問資料庫時,特別是新手,可能會需要查詢表中資料總數,以下這段程式碼可以非常簡便的獲取到資料數目//先建立資料庫連線,執行查詢語句 Connection conn = DriverManager.getConnection(URL, USER, PassWord); Sta
java程式碼刪除資料庫中樹形結構資料
在網上搜查了很多關於刪除樹形結構的文章,結果找到的都是一些簡單的就刪除2級目錄的操作,完全沒有刪除巢狀多層的程式碼,介於此原因,就編寫的如下程式碼,來刪除巢狀多層的樹形結構 eg:資料庫程式碼 CREATE TABLE mytest ( f_id NUMBER , z
java程式碼之資料庫ResultSet轉換成javaBean
oracel資料型別跟java型別的對應 rid:java.lang.String type_binary_double:java.lang.Double type_binary_float:java.lang.Float type_blob:oracle.sql.BLOB
工作總結之----java程式碼連線資料庫(SqlServer和oracle)
程式碼:import java.sql.*; public class JDBCUtil { private static final String DBDRIVERSQLSWRVER = "c
Java程式碼判斷資料庫中某張表是否存在
最近在開發一個同步資料的統計任務的時候遇到一個問題:要在Java程式碼中判斷資料庫中某張表是否存在,查資料後,總結了以下兩種方法:1、使用JdbcTemplate beanpublic boolean
【MongoDB學習筆記】6:資料備份(mongodump)與恢復(mongorestore)流程
備份資料 要備份某個DB中的全部Collection,相當於備份RDBMS中某個Schema下的全部Table。比如想要備份這個DB: > show dbs admin 0.000GB config 0.000GB local 0.000