Estou desenvolvendo uma aplicação simples em Java Desktop + Hibernate, e banco de dados Firebird-2.5.0.25920_0_x64_RC2, o problema maior que estou querendo implementar a ferramenta backup nessa aplicação, as dificuldades maiores começar aparecer agora por não ter um conhecimento grande, e nem noção de como fazer um backup, se alguém poder me ajudar, a imagem mostra o modelo da interface backup que desejo desenvolver.
imagem da janela backup: http://cid-4caeef7c85b13343.office.live.com/self.aspx/.Public/Imagens%20Aplicativos/Backup.jpg
BACKUP:
1: Minha duvida é como eu posso utilizar o JFileChooser fj = new JFileChooser() no evento do btLocalActionPerformed passando o caminho URL(path) com o nome do backup desejado para salvar no local escolhido na ação do outro evento do botão (btBackupActionPerformed).
Mesma duvida para restaurar, como faço para selecionar o objeto num evento e passar para o outro evento restaurar fazer a restauração do BD?
private void btLocalActionPerformed(java.awt.event.ActionEvent evt) {
}
private void btBackupActionPerformed(java.awt.event.ActionEvent evt) {
}
RESTAURAR:
private void btSelecionarActionPerformed(java.awt.event.ActionEvent evt) {
}
private void btRestaurarActionPerformed(java.awt.event.ActionEvent evt) {
}
Saudações jovem…
Segue o codigo que achei na net … e fiz algumas alterações:
/**
* Codigo base de http://www.arquivodecodigos.net/dicas/java-usando-jfilechooser-para-escolher-um-diretorio-a-partir-de-um-jframe-485.html
*/
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class SelecionarBanco extends JFrame{
private String selecionado;
private String restaurado;
public SelecionarBanco(){
super("Escolher diretorio e arquivo");
Container c = getContentPane();
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
c.setLayout(layout);
JButton btnBackUp = new JButton("Escolher BackUp");
JButton btnLocal = new JButton("Diretorio para BackUp");
JButton btbtSeleciona = new JButton("Seleciona");
JButton btbtRestaurar = new JButton("Restaura");
JFileChooser fcaArquivo = new JFileChooser();
btnBackUp.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser fcaArquivo = new JFileChooser();
//somente arquivos
fcaArquivo.setFileSelectionMode(JFileChooser.FILES_ONLY);
int res = fcaArquivo.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File diretorio = fcaArquivo.getSelectedFile();
JOptionPane.showMessageDialog(null, "Voce escolheu o arquivo: " + diretorio.getAbsolutePath());
setRestaurado(diretorio.getAbsolutePath());
}
else
JOptionPane.showMessageDialog(null, "Voce nao selecionou nenhum arquivo.");
}
}
);
btnLocal.addActionListener(
new ActionListener(){
public void actionPerformed(ActionEvent e){
JFileChooser fcaArquivo = new JFileChooser();
//somente diretorios
fcaArquivo.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int res = fcaArquivo.showOpenDialog(null);
if(res == JFileChooser.APPROVE_OPTION){
File diretorio = fcaArquivo.getSelectedFile();
JOptionPane.showMessageDialog(null, "Voce escolheu o diretorio: " + diretorio.getAbsolutePath());
setSelecionado(diretorio.getAbsolutePath());
}
else
JOptionPane.showMessageDialog(null, "Voce nao selecionou nenhum diretorio.");
}
}
);
btbtSeleciona.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
//Aqui voce insere seu metodo para gerar o backup
JOptionPane.showMessageDialog(null, "Gerando o backUp em ".concat(getSelecionado()));
}
});
btbtRestaurar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
//Aqui voce insere seu metodo para restaurar o backup
JOptionPane.showMessageDialog(null, "Restaurando o backUp de ".concat(getRestaurado()));
}
});
c.add(btnBackUp);
c.add(btnLocal);
c.add(btbtSeleciona);
c.add(btbtRestaurar);
setSize(400, 200);
setVisible(true);
}
public String getRestaurado() {
return restaurado;
}
public void setRestaurado(String restaurado) {
this.restaurado = restaurado;
}
public String getSelecionado() {
return selecionado;
}
public void setSelecionado(String selecionado) {
this.selecionado = selecionado;
}
public static void main(String[] args) {
SelecionarBanco sb = new SelecionarBanco();
sb.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Acho que o código fala por si …então tenta ai e qualquer duvida é só perguntar
Tchaco
Março 3, 2011, 2:08pm
#3
nightcrowls, segue em anexo classe de backup.
Fiz teste aqui e funcionou.
Lembrando que as rotinas de backup e restore são do “jaybird-full-2.0.1.jar” e para realizar, não pode haver conexão no banco.
Você provavelmente está usando ou usará um pool de conexão, então, antes de executar os procedimento, ele deverá ser fechado.
grato a todos que contribuiram com suas dicas, vou estar analisando e testendo as soluções, qalqer coisa postarei as duvidas aqi…