Pessoal sei que esse tópico tem vários,porém nao achei o que gostaria.
Gostaria em saber como criar um arquivo txt, através de um select no banco de dados e popular esse txt com as informações, é possivel:
select * from alunos where matricula = 02
Pessoal sei que esse tópico tem vários,porém nao achei o que gostaria.
Gostaria em saber como criar um arquivo txt, através de um select no banco de dados e popular esse txt com as informações, é possivel:
select * from alunos where matricula = 02
nossa tem mt coisa mesmo, nada te ajudou?
vc já sabe manipular arquivos txt?
e consultas no banco?
att,
consulta no sql blz!
mas manipular txt nao!!
na verdade sou iniciante!
e buscar no fórum antes de abrir um novo post repetido?
já pensou em fazer isso?
o 8° link de baixo para cima da primeira página é um ótimo artigo.
att,
Ok Amigo, vi que tem alguns post, mas como disse nao me ajudaram, mas tudo bem era só pra me ajudar a pegar de um select e polular um txt!
mas valeu pela sua ajuda!
se surgirem outras dúvidas, (e após uma busca rsrs) posta o q vc fez, o q vc gostaria de fazer e o erro.
boa sorte.
att,
ok pedru como tinha dito rsrs eu fiz a busca e nao obtive exito, mas blz!! valeu pela sua ajuda!!
grato
cara coloca ai o que vc fez
o metodo que vc fez ele retornando um list,coloca aii
Cara, o que exatamente você quer fazer?
Já vi umas 2 ou três sugestões que fazem exatamente o que você pediu. Aliás, o tópico está resolvido ou não? Se está, como resolveu?
Olá Vini, pode me passar esses resultados que achou!!?
Bem o que eu quero pode ser até simples, mas nao estou conseguindo fazer, aliás nao sei como fazer!!
queria através de um select na tabela, criar um arquivo txt com as informações desse select ?!
File file = new File("arquivo.txt");
PrintWriter pw = new PrintWriter(file);
ResultSet rs = suaConnection.createStatement().executeQuery("seu select vai aqui");
ResultSetMetaData md = rs.getMetaData();
while(rs.next()){
for(int i = 0; i < md.getColumnCont(); i ++){
pw.append(rs.getObject(i) + ";");
}
}
pw.flush();
Estou fazendo da seguinte forma
public class teste {
private static Statement st;
private static ResultSet rs;
public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException, SQLException{
try{
Class.forName("oracle.jdbc.OracleDriver");
Connection con= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl11g","system","11g");
System.out.println("CONECTADO!!!!!");
con.close();
st = con.createStatement();
rs = st.executeQuery("select * from system.livros");
//isbn, titulo,edicao_num,ano_publicacao, descricao
}catch(SQLException e){
e.printStackTrace();
}
File file = new File("arquivo.txt");
PrintWriter pw = new PrintWriter(file);
ResultSet stt = st.executeQuery("select * from system.livros");
ResultSetMetaData md = stt.getMetaData();
while(stt.next()){
for(int i = 0; i < md.getColumnCount(); i ++){
pw.append(stt.getObject(i) + ";");
}
}
pw.flush();
}
}
e está dando erro
CONECTADO!!!!!
java.sql.SQLException: Conexão Fechada
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:111)
Vini , você pode me ajudar por favor!?
Remova a linha 10 do seu código. Note que vc mesmo está fechando a conexão com o banco, como vc espera depois rodar statements nela?
Outra coisa, não adianta insistir no tópico.
Eu vou voltar a visita-lo sempre que receber um e-mail daqui, mas não fico 100% do tempo na frente do computador, ou esperando e-mails do GUJ.
Ok Vini valeu!!!
Olha ainda nao conseguir, a classe rodou em erro agora , tirando a linha 10, mas nao está gerando nada no arquivo txt.
Pessoal conseguir fazer mais ou menos, ainda está dando erro e nao popula o txt, alguém poderia ajudar!?
public class testeb {
private static java.sql.Statement st;
private static ResultSet rs;
public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException {
try{
Class.forName("oracle.jdbc.OracleDriver");
Connection con= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl11g","system","11g");
System.out.println("CONECTADO!!!!!");
st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM system.livros");
//isbn, titulo,edicao_num,ano_publicacao, descricao
if(rs.next()){
String coluna1 = rs.getString("isbn");
String coluna2 = rs.getString("titulo");
String coluna3 = rs.getString("edicao_num");
String coluna4 = rs.getString("ano_publicacao");
String coluna5 = rs.getString("descricao");
System.out.println(coluna1+coluna2+coluna3+coluna4+coluna5);
File file = new File("arquivo.txt");
PrintWriter pw = new PrintWriter(file);
ResultSetMetaData md = rs.getMetaData();
while(rs.next()){
for(int i = 0; i < md.getColumnCount(); i ++){
pw.append(rs.getObject(i) + ";");
}
}
pw.flush();
}
}catch(SQLException e){
e.printStackTrace();
}
}
}
seguinte erro:
Oi!
Procure postar o Stacktrace completo, e não somente uma parte. Fica muito mais fácil de identificar o que está ocorrendo.
E ao meu ver, você deve executar antes de mais nada o mesmo select que faz em código diretamente em um client do seu banco, posteriormente, rever se estão corretos os nomes atribuidos as colunas, pois me parece que há algum inválido.
Abraços.
Acredito que as informações que vc está passando para conectar ao banco esteja errada , reveja essa informaçoes = nosso amigo nel disse
Outra coisa… o seu if e seu while estão testando a mesma coisa. E já que vc pega uma a uma coluna por nome, não há necessidade de usar o resultSetMetaData. Ele só é usado se vc quiser fazer um método genérico, capaz de gerar o txt a partir de qualquer ResultSet:
//isbn, titulo,edicao_num,ano_publicacao, descricao
File file = new File("arquivo.txt");
PrintWriter pw = new PrintWriter(file);
while(rs.next()){
pw.printf("%s;%s;%s;%s;%s", rs.getString("isbn"), rs.getString("titulo"), rs.getString("edicao_num"),
rs.getString("ano_publicacao"), rs.getString("descricao"));
System.out..printf("%s;%s;%s;%s;%s", rs.getString("isbn"), rs.getString("titulo"), rs.getString("edicao_num"),
rs.getString("ano_publicacao"), rs.getString("descricao"));
}
pw.flush();
pw.close();
Pessoal valeu mesmo, muito obrigado pela ajuda, conseguir fazer!!!
Vou colocar o código para aqueles que quiserem fazer o mesmo!!!
import java.beans.Statement;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
/**
*
* @author snowblacksoul
*/
public class testeb {
private static java.sql.Statement st;
private static ResultSet rs;
public static void main(String[] args) throws ClassNotFoundException, FileNotFoundException, SQLException {
try{
Class.forName("oracle.jdbc.OracleDriver");
Connection con= DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:orcl11g","system","11g");
System.out.println("CONECTADO!!!!!");
st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT * FROM system.livros");
//isbn, titulo,edicao_num,ano_publicacao, descricao
File file = new File("arquivo.txt");
PrintWriter pw = new PrintWriter(file);
while(rs.next()){
pw.printf("%s;%s;%s;%s;%s\n", rs.getString("isbn"), rs.getString("titulo"), rs.getString("edicao_num"),rs.getString("ano_publicacao"), rs.getString("descricao"));
System.out.printf("%s;%s;%s;%s;%s", rs.getString("isbn"), rs.getString("titulo"), rs.getString("edicao_num"),
rs.getString("ano_publicacao"), rs.getString("descricao"));
}
pw.flush();
pw.close();
}catch(SQLException e){
e.printStackTrace();
}
}
}
valeu gente!!!
Aproveite que vc está usando o printf para requisitar os dados em seus tipos certos. Por exemplo, o ano não seria um int?
Valeu Vini!
muito obrigado!