PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
import org.apache.commons.io.FileUtils;
public class dbasebackupdetailpanel extends javax.swing.JPanel {
JFileChooser fc = new JFileChooser();
private boolean isConnected = false;
Connection conn = null;
List tables = null;
String url, password, uname;
//backup butonu
private void btnBackupActionPerformed(java.awt.event.ActionEvent evt) {
try {
fc.setDialogTitle("Create a file to BackUp database");
fc.setCurrentDirectory(fc.getCurrentDirectory());
if (fc.showSaveDialog(this) == JFileChooser.APPROVE_OPTION) {
File file = new File(fc.getSelectedFile().getAbsolutePath() + ".sql");
String data = null;
if (chkTables.isSelected() == false) {
data = this.getData(tfHost.getText(), tfPort.getValue().toString(), tfUser.getText(), tfPassword.getText(), "dbFStation");
} else {
data = this.getData(tfHost.getText(), tfPort.getValue().toString(), tfUser.getText(), tfPassword.getText(), "dbFStation",cmbTables.getSelectedItem().toString());
}
FileUtils.writeStringToFile(file, data);//avaible when import org.apache.commons.io.FileUtils;
xputils.showMessage("Backup Successfull");
}
} catch (Exception e) {
xputils.showErrorMessage(e.toString());
}}
//baglantı butonu
private void btnConnectActionPerformed(java.awt.event.ActionEvent evt) {
//kontrol validasyonu
url = "jdbc:mysql://" + tfHost.getText() + ":" + tfPort.getValue() + "/dbFstation";
uname = tfUser.getText();
password = tfPassword.getText();
try {
conn = DriverManager.getConnection(url, uname, password);
if (conn != null) {
isConnected = true;
this.btnBackup.setEnabled(true);
getTableNames(conn);
this.cmbTables.setModel(tablesModel());
xputils.showMessage("Connection was Succesfull");
} else {
this.btnBackup.setEnabled(false);
isConnected = false;
xputils.showMessage("Connection was not Succesfull");
}
} catch (SQLException ex) {
Logger.getLogger(dbasebackupdetailpanel.class.getName()).log(Level.SEVERE, null, ex);
}}
private int BUFFER = 10485760;
//butun tabloların backup ını almak
private String getData(String host, String port, String user,
String password, String db) throws Exception {
Process run = Runtime.getRuntime().exec(
"mysqldump –host=" + host + " –port=" + port +" –user=" + user + " –password=" + password + " " + db);
InputStream in = run.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
StringBuffer content = new StringBuffer();
int count;
char[] cbuf = new char[BUFFER];
while ((count = br.read(cbuf, 0, BUFFER)) != -1) {
content.append(cbuf, 0, count);
}
br.close();
in.close();
return content.toString();
}
//bir tablonun backup ını almak
private String getData(String host, String port, String user,
String password, String db, String table) throws Exception {
Process run = Runtime.getRuntime().exec(
"mysqldump –host=" + host + " –port=" + port + " –user=" + user + " –password=" + password + " " + db + " " + table);
InputStream in = run.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
StringBuffer content = new StringBuffer();
int count;
char[] cbuf = new char[BUFFER];
while ((count = br.read(cbuf, 0, BUFFER)) != -1) {
content.append(cbuf, 0, count);
}
br.close();
in.close();
return content.toString();
}
//db'den tablo adlarını almak
private void getTableNames(Connection con) {
String[] DB_TABLE_TYPES = {"TABLE"};
String COLUMN_NAME_TABLE_NAME = "TABLE_NAME";
ResultSet rs = null;
try {
DatabaseMetaData meta = conn.getMetaData();
rs = meta.getTables(null, null, null, DB_TABLE_TYPES);
if (rs != null) {
tables = new ArrayList();
while (rs.next()) {
String tableName = rs.getString(COLUMN_NAME_TABLE_NAME);
if (tableName != null) {
tables.add(tableName);
}}}
con.close();
} catch (Exception e) {
e.printStackTrace();
}}
//liste olarak tablo adlarını combobox içine doldurmak
public ComboBoxModel tablesModel() {
ComboBoxModel model;
if (tables == null || tables.size() <= 0) {
Object[] d = new Object[1];
ComboBoxModel mo = new DefaultComboBoxModel(d);
return mo;
}
Object[] days = new Object[tables.size()];
int i = 0;
try {
ListIterator lg = tables.listIterator();
while (lg.hasNext()) {
days[i] = tables.get(i);
i = i + 1;
}
} catch (Exception ex) {
System.out.println("error occured " + ex.toString());
}
model = new DefaultComboBoxModel(days);
return model;
}