Restore MySQL Database Using Java

Restoring MySQL database from a backup file (SQL File).


import java.io.FileInputStream;
import java.io.OutputStream;

public class MySQLBackupUtil {

private static void restore(String host, String port, String user,
String password, String db, String sqlFile) throws Exception {
int BUFFER = 10485760;

String cmd = "mysql --host=" + host;
if (port != null && port.length() > 0)
cmd += " --port=" + port;
cmd += " --user=" + user;
if (password != null && password.length() > 0)
cmd += " --password=" + password;
cmd += " " + db;

Process run = Runtime.getRuntime().exec(cmd);
FileInputStream fis = new FileInputStream(sqlFile);
OutputStream out = run.getOutputStream();
byte[] buf = new byte[BUFFER];
int len;
while ((len = fis.read(buf)) >= 0)
out.write(buf, 0, len);

fis.close();
out.close();
}

public static void main(String[] args) {
try {
String sqlFile = "D:\\APP\\workspace\\chunkcode\\dbtest.sql";
restore("localhost", "3306", "root", "", "dbtest", sqlFile);
} catch (Exception e) {
e.printStackTrace();
}

}
}

Extracting Zip File Using Java

Extract a zip file to a directory:

import java.io.*;
import java.util.zip.*;

public class Unzip {
public static void unzipTo(String zipName, String dirName) throws Exception {
final int BUFFER = 2048;
File dir = new File(dirName);
if (!dir.exists())
dir.mkdir();

if (!dirName.endsWith("\\") && !dirName.endsWith("/")) {
dirName += "/";
}
BufferedOutputStream dest = null;
FileInputStream fis = new FileInputStream(zipName);
CheckedInputStream checksum = new CheckedInputStream(fis, new Adler32());
ZipInputStream zis = new ZipInputStream(new BufferedInputStream(
checksum));

ZipEntry entry;
while ((entry = zis.getNextEntry()) != null) {
System.out.println("Extracting: " + entry + " to " + dirName
+ entry.getName());
int count;
byte data[] = new byte[BUFFER];
// write the files to the disk
FileOutputStream fos = new FileOutputStream(dirName
+ entry.getName());
dest = new BufferedOutputStream(fos, BUFFER);
while ((count = zis.read(data, 0, BUFFER)) != -1) {
dest.write(data, 0, count);
}
dest.flush();
dest.close();
}
zis.close();
System.out.println("Checksum: " + checksum.getChecksum().getValue());
}

public static final void main(String[] args) {
try {
String targetDir = "D:\\APP\\workspace\\chunkcode\\tmp";
String zipFile = "D:/APP/workspace/chunkcode/test.zip";
unzipTo(zipFile, targetDir);
} catch (Exception e) {
e.printStackTrace();
}
}
}

The code is based from this article.

MIME Type Quick Reference

MIME TypeFile Extension
application/SLAstl
application/STEPstep
application/STEPstp
application/acaddwg
application/andrew-insetez
application/clariscadccad
application/draftingdrw
application/dsptypetsp
application/dxfdxf
application/excelxls
application/i-deasunv
application/java-archivejar
application/mac-binhex40hqx
application/mac-compactprocpt
application/vnd.ms-powerpointpot
application/vnd.ms-powerpointpps
application/vnd.ms-powerpointppt
application/vnd.ms-powerpointppz
application/msworddoc
application/octet-streambin
application/octet-streamstyle
application/octet-streamdms
application/octet-streamexe
application/octet-streamlha
application/octet-streamlzh
application/odaoda
application/oggogg
application/oggogm
application/pdfpdf
application/pgppgp
application/postscriptai
application/postscripteps
application/postscriptps
application/pro_engprt
application/rtfrtf
application/setset
application/smilsmi
application/smilsmil
application/solidssol
application/vdavda
application/vnd.mifmif
application/vnd.ms-excelxlc
application/vnd.ms-excelxll
application/vnd.ms-excelxlm
application/vnd.ms-excelxls
application/vnd.ms-excelxlw
application/vnd.rim.codcod
application/x-arj-compressedarj
application/x-bcpiobcpio
application/x-cdlinkvcd
application/x-chess-pgnpgn
application/x-cpiocpio
application/x-cshcsh
application/x-debian-packagedeb
application/x-directordcr
application/x-directordir
application/x-directordxr
application/x-dvidvi
application/x-freelancepre
application/x-futuresplashspl
application/x-gtargtar
application/x-gunzipgz
application/x-gzipgz
application/x-hdfhdf
application/x-ipixipx
application/x-ipscriptips
application/x-javascriptjs
application/x-koanskd
application/x-koanskm
application/x-koanskp
application/x-koanskt
application/x-latexlatex
application/x-lisplsp
application/x-lotusscreencamscm
application/x-mifmif
application/x-msdos-programbat
application/x-msdos-programcom
application/x-msdos-programexe
application/x-netcdfcdf
application/x-netcdfnc
application/x-perlpl
application/x-perlpm
application/x-rar-compressedrar
application/x-shsh
application/x-sharshar
application/x-shockwave-flashswf
application/x-stuffitsit
application/x-sv4cpiosv4cpio
application/x-sv4crcsv4crc
application/x-tar-gztar.gz
application/x-tar-gztgz
application/x-tartar
application/x-tcltcl
application/x-textex
application/x-texinfotexi
application/x-texinfotexinfo
application/x-troff-manman
application/x-troff-meme
application/x-troff-msms
application/x-troffroff
application/x-trofft
application/x-trofftr
application/x-ustarustar
application/x-wais-sourcesrc
application/x-zip-compressedzip
application/zipzip
audio/TSP-audiotsi
audio/basicau
audio/basicsnd
audio/midikar
audio/midimid
audio/midimidi
audio/mpegmp2
audio/mpegmp3
audio/mpegmpga
audio/ulawau
audio/x-aiffaif
audio/x-aiffaifc
audio/x-aiffaiff
audio/x-mpegurlm3u
audio/x-ms-waxwax
audio/x-ms-wmawma
audio/x-pn-realaudio-pluginrpm
audio/x-pn-realaudioram
audio/x-pn-realaudiorm
audio/x-realaudiora
audio/x-wavwav
chemical/x-pdbpdb
chemical/x-pdbxyz
image/cmu-rasterras
image/gifgif
image/iefief
image/jpegjpe
image/jpegjpeg
image/jpegjpg
image/pngpng
image/tifftif tiff
image/tifftif
image/tifftiff
image/x-cmu-rasterras
image/x-portable-anymappnm
image/x-portable-bitmappbm
image/x-portable-graymappgm
image/x-portable-pixmapppm
image/x-rgbrgb
image/x-xbitmapxbm
image/x-xpixmapxpm
image/x-xwindowdumpxwd
model/igesiges
model/igesigs
model/meshmesh
model/meshmsh
model/meshsilo
model/vrmlvrml
model/vrmlwrl
text/csscss
text/htmlhtm
text/htmlhtml htm
text/htmlhtml
text/plainasc txt
text/plainasc
text/plainc
text/plaincc
text/plainf90
text/plainf
text/plainh
text/plainhh
text/plainm
text/plaintxt
text/richtextrtx
text/rtfrtf
text/sgmlsgm
text/sgmlsgml
text/tab-separated-valuestsv
text/vnd.sun.j2me.app-descriptorjad
text/x-setextetx
text/xmlxml
video/dldl
video/flifli
video/flvflv
video/glgl
video/mpegmp2
video/mp4mp4
video/mpegmpe
video/mpegmpeg
video/mpegmpg
video/quicktimemov
video/quicktimeqt
video/vnd.vivoviv
video/vnd.vivovivo
video/x-flifli
video/x-ms-asfasf
video/x-ms-asxasx
video/x-ms-wmvwmv
video/x-ms-wmxwmx
video/x-ms-wvxwvx
video/x-msvideoavi
video/x-sgi-moviemovie
www/mimemime
x-conference/x-cooltalkice
x-world/x-vrmlvrm
x-world/x-vrmlvrml
vnd.openxmlformats-officedocument.spreadsheetml.sheetxlsx
application/vnd.openxmlformats-officedocument.wordprocessingml.documentdocx
[Update 2019-05-13]
-add: docx, & xlsx.