packageAcessoBD;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.JOptionPane;publicclassAcessoBD_Oracle{publicstaticvoidmain(String[]args)throwsIOException{try{Class.forName("oracle.jdbc.driver.OracleDriver");System.out.println("Driver JBDC carregando...");try{Connectioncnx=DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:XE","user","senha");System.out.println("Conectou");Statementst=cnx.createStatement();ResultSetrs=st.executeQuery("SELECT * FROM PROVA");BufferedWriterarquivo;arquivo=newBufferedWriter(newFileWriter("./arquivo1.xml"));arquivo.write("<?xml version='1.0' encoding='UTF-8' ?> ");arquivo.write(System.getProperty("line.separator"));arquivo.write("<lista_funcionarios>");arquivo.write(System.getProperty("line.separator"));// processa o resultado da consulta e escreve no arquivo XML.while(rs.next()){System.out.println(rs.getString("nomefuncionario"));arquivo.write("<funcionario>");arquivo.write(System.getProperty("line.separator"));arquivo.write(" <codigo_f>"+rs.getString("CodigoFuncionario")+"</codigo_f>");arquivo.write(System.getProperty("line.separator"));arquivo.write(" <nome_f>"+rs.getString("NomeFuncionario")+"</nome_f>");arquivo.write(System.getProperty("line.separator"));arquivo.write(" <numero_filhos_f>"+rs.getString("NumeroFilhos")+"</numero_filhos_f>");arquivo.write(System.getProperty("line.separator"));arquivo.write("</funcionario>");arquivo.write(System.getProperty("line.separator"));}// finaliza o arquivo XML.arquivo.write("</lista_funcionarios>");arquivo.write(System.getProperty("line.separator"));arquivo.flush();arquivo.close();System.out.println("Arquivo.xml gerado");}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Problemas ao conectar com o BD;"+e.getMessage());// TODO Auto-generated catch blocke.printStackTrace();}}catch(ClassNotFoundExceptione){// TODO Auto-generated catch blockJOptionPane.showMessageDialog(null,"Não encontrei o driver JDBC:"+e.getMessage());}}}
Seguinte estou usando o driver ojdbct6.jar para conexao com o banco!
porém vc fez a chamada do driver e o class.forname de forma incorreta, acertei o que vc fez e deu certinho sem problemas!
Procure nao fazer a chamada do driver de conexao na propria classe, eu fiz outra classe para conexao, veja a forma melhor de fazer!!!
vou colocar os arquivos aqui , qualquer coisa estou a disposição!!!
packageAcessoBD;importconnectionfactory.ConnectionFactory;importjava.io.BufferedWriter;importjava.io.FileWriter;importjava.io.IOException;importjava.sql.Connection;importjava.sql.DriverManager;importjava.sql.ResultSet;importjava.sql.SQLException;importjava.sql.Statement;importjavax.swing.JOptionPane;publicclassAcessoBD_Oracle{publicstaticvoidmain(String[]args)throwsIOException,SQLException{try{Connectioncon=newConnectionFactory().getConnection();try{Statementst=con.createStatement();ResultSetrs=st.executeQuery("SELECT * FROM clientes");BufferedWriterarquivo;arquivo=newBufferedWriter(newFileWriter("./arquivo1.xml"));arquivo.write("<?xml version='1.0' encoding='UTF-8' ?> ");arquivo.write(System.getProperty("line.separator"));arquivo.write("<lista_funcionarios>");arquivo.write(System.getProperty("line.separator"));// processa o resultado da consulta e escreve no arquivo XML. while(rs.next()){System.out.println(rs.getString("idusuario"));/*arquivo.write("<funcionario>"); arquivo.write(System.getProperty("line.separator")); arquivo.write(" <codigo_f>" + rs.getString("CodigoFuncionario") + "</codigo_f>"); arquivo.write(System.getProperty("line.separator")); arquivo.write(" <nome_f>" + rs.getString("NomeFuncionario") + "</nome_f>"); arquivo.write(System.getProperty("line.separator")); arquivo.write(" <numero_filhos_f>" + rs.getString("NumeroFilhos") + "</numero_filhos_f>"); arquivo.write(System.getProperty("line.separator")); arquivo.write("</funcionario>"); arquivo.write(System.getProperty("line.separator")); * */arquivo.write("<idusuario>");arquivo.write(System.getProperty("line.separator"));arquivo.write("<nome>"+rs.getString("nome")+"</nome>");arquivo.write(System.getProperty("line.separator"));arquivo.write("<login>"+rs.getString("login")+"</login>");arquivo.write(System.getProperty("line.separator"));arquivo.write("<senha>"+rs.getString("senha")+"</senha>");arquivo.write(System.getProperty("line.separator"));}// finaliza o arquivo XML. arquivo.write("</lista_funcionarios>");arquivo.write(System.getProperty("line.separator"));arquivo.flush();arquivo.close();System.out.println("Arquivo.xml gerado");}catch(SQLExceptione){JOptionPane.showMessageDialog(null,"Problemas ao conectar com o BD;"+e.getMessage());// TODO Auto-generated catch block e.printStackTrace();}}catch(ClassNotFoundExceptione){// TODO Auto-generated catch block JOptionPane.showMessageDialog(null,"Não encontrei o driver JDBC:"+e.getMessage());}}}
nel
Oi.
Só vim dar conselho. Procure usar uma API para gerar seu XML usando objeto, ao invés de usar um Writer da vida.
Eu diria para utilizar o JAXB, é simples e eficiente. Outro conselho que já vi muitos dando (nunca usei) é utilizar o XStream.
Se decidir utilizar o writer, acho mais vantajoso, inclusive em termos de perfomance (mesmo que seja pouco), usar um StringBuffer para gerar o seu XML e ao fim, aplicar isso ao seu writer, ao invés de ir escrevendo linha a linha.
Fica a seu critério.
A
AndreZenzen
nel:
Oi.
Só vim dar conselho. Procure usar uma API para gerar seu XML usando objeto, ao invés de usar um Writer da vida.
Eu diria para utilizar o JAXB, é simples e eficiente. Outro conselho que já vi muitos dando (nunca usei) é utilizar o XStream.
Se decidir utilizar o writer, acho mais vantajoso, inclusive em termos de perfomance (mesmo que seja pouco), usar um StringBuffer para gerar o seu XML e ao fim, aplicar isso ao seu writer, ao invés de ir escrevendo linha a linha.
Fica a seu critério.
[quote]
Muito Obrigado pela dica, tenho mais uma duvida se puder me ajudar agradeço desde já.
Gostaria de fazer um .properties onde irei colocar a consulta que será executada. o nome do Arquivo XML que será criado e o caminho físico onde este arquivo será salvo.
teira como me auxiliar para realizar da melhor forma possivel.
A
AndreZenzen
snowblacksoul:
Olá AndreZenzen blz Cara!!!
Seguinte estou usando o driver ojdbct6.jar para conexao com o banco!
porém vc fez a chamada do driver e o class.forname de forma incorreta, acertei o que vc fez e deu certinho sem problemas!
Procure nao fazer a chamada do driver de conexao na propria classe, eu fiz outra classe para conexao, veja a forma melhor de fazer!!!
vou colocar os arquivos aqui , qualquer coisa estou a disposição!!!