Olá Pessoal!!!
Preciso fazer um programinha que faz uma consulta em um banco de dados, e apartir dessa consulta seja gerado um xml para que possa ser aberto em um brownser... até ai tudo bem!!! Só que tá faltando uma bendita barrinha de progresso. Enquanto o usuário estiver efetuando a consulta, ele possa ter noção em que pé que tá. Procurei pela net ... tentei implementar mas não deu certo.... =/
aqui tá o evento do botão que vai chamar a classe que lista todos os contatos do banco:
btListar.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent ae){
ListarTudo lt = new ListarTudo();
lt.setVisible(true);
}
});
aqui tá a classe que vai fazer a consulta e gerar o xml:
[code]
import java.awt.BorderLayout;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.sql.Types;
import java.util.Vector;
import javax.swing.JFrame;
public class ListarTudo extends JFrame {
public ListarTudo() {
this.getContentPane().setLayout(new BorderLayout());
Vector<Vector<String>> dados = new Vector<Vector<String>>();
StringBuffer sb = new StringBuffer();
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
Connection con = DriverManager.getConnection("jdbc:odbc:agenda");
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from tbpessoa");
ResultSetMetaData rsmd = rs.getMetaData();
while (rs.next()) {
Vector<String> reg = new Vector<String>();
for (int i = 1; i <= rsmd.getColumnCount(); i++) {
switch (rsmd.getColumnType(i)) {
case Types.VARCHAR:
reg.add(rs.getString(i));
break;
case Types.INTEGER:
reg.add(rs.getString(i) + "");
break;
case Types.DOUBLE:
reg.add(rs.getString(i) + "");
}
}
dados.add(reg);
}
//gerando o xml...
sb.append("<?xml version='1.0' encoding='UTF-8'?>");
sb.append("<contatos>");
for (int i = 0 ; i < dados.size(); i++) {
Vector<String> obj = dados.get(i);
sb.append("<contato>");
sb.append("<registro>" + obj.get(0) + "</registro>");
sb.append("<nome>" + obj.get(1) + "</nome>");
sb.append("<telefone>" + obj.get(2) + "</telefone>");
sb.append("<email>" + obj.get(3) + "</email>");
sb.append("<datanasc>" + obj.get(4) + "</datanasc>");
sb.append("</contato>");
}
sb.append("</contatos>");
//gravando o xml...
File file = new File("c:\arquivo.xml");
try {
FileWriter fw = new FileWriter(file);
fw.write(sb.toString());
fw.flush();
fw.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (Exception e) {
e.printStackTrace();
}
setTitle("Gerando XML");
setBounds(540, 200, 440, 290);
setVisible(true);
}
}[/code]
Valeu…