1. 程式人生 > >JAVA 程式碼備份資料庫與恢復

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