Txt para o bd

16 respostas
shadowjava

gostaria de adicionar tabelas escritas num arquivo txt para um bd , existe essa possibilidade

exemplo :

tenho um arquivo txt da seguinte maneira

tabelas.txt

funcionario
cliente
dependente


e gostaria de criar esses nomes em tabelas dentro do banco .
sem precisar criar uma por uma .
seria , ler e gravar direto.

quem puder dar uma luz pelomenos agradeço!

16 Respostas

thegoergen

Cara… nunca ouvi falar de algo assim direto.

O que tu pode fazer é criam um BufferedReader, ler linha a linha o arquivo e ir incluindo no banco…

V

vc teria q ler o txt e criar as tabelas. mas o txt mas como vc vai estruturar o txt é com vc.
vc pode criar um txt com o comando, como:
create table cliente ( nome varchar(20))
e para cada linha do txt executar o create table.

luistiagos

Cara nunca ouvi nada a respeito de algo que faça isto automaticamente… é meio dificil pois teria que ter um padrão de registros em txt unico para fazer a geração e população das tabelas… o que da pra vc fazer é criar a mesma estrutura de registros no bd e depois usar a aplicação pra populalas do txt para o bd… e so ir lendo linha a linha identificar a que tabela e campo pertence cada linha e ir inserindo na coluna desejada do bd… da um pouco de trabalho mas da pra fazer… agora criar as tabelas pela estrutura do txt é meio complicado o melhor seria se vc cria-se a mesma estrutura do txt no bd…

shadowjava

vlw pelas dicas !

vou tentar por em pratica aqui

depois posto os resultados

marciofermino

É se alguém souber como se faz…

me da 1 toque

fabim

shadowjava:
gostaria de adicionar tabelas escritas num arquivo txt para um bd , existe essa possibilidade

exemplo :

tenho um arquivo txt da seguinte maneira

tabelas.txt

funcionario
cliente
dependente


e gostaria de criar esses nomes em tabelas dentro do banco .
sem precisar criar uma por uma .
seria , ler e gravar direto.

quem puder dar uma luz pelomenos agradeço!

Uai cara creio que seja simples, basta vc pegar o conteudo do seu .txt, “tokenizar” ele ( os comandos DDL poderiam estar separados por um
caractere tipo # ), depois basta usar JDBC simples pra ir executando isso no banco…

shadowjava

hum !!!
Bem que eu ouvi falar em JDBC para fazer isso !

vou ver isso tambem ! ANOTADO.

shadowjava

Uai cara creio que seja simples, basta vc pegar o conteudo do seu .txt, “tokenizar” ele ( os comandos DDL poderiam estar separados por um
caractere tipo # ), depois basta usar JDBC simples pra ir executando isso no banco…

O que seria Tokenizar?

fabim

tokenizar é vc pegar uma String e ‘quebrá-la’ em pedaços, dado um delimitador…

como vc saberia no seu arquivo, separar os comandos? linha a linha nao da, visto que haverá comandos que usarão varias linhas

Supondo um arquivo.txt com o seguinte conteúdo:

CREATE TABLE TESTE( ID_TESTE INTEGER NOT NULL, DS_TESTE);

CREATE TABLE TESTE2( ID_TESTE INTEGER NOT NULL,
DS_TESTE,
DT_TESTE TIMESTAMP );

OUTRO_COMANDO_DE_CRIAR_TABELA

Um codigo pra iterar pelos comandos seria algo do tipo:

// supondo que vc leu o arquivo inteiro e armazenou o conteudo numa variavel "string"
StringTokenizer tokenizer = new StrnigTokenizer( string, "#" );
while ( tokenizer.hasMoreElements ) {
     // tokenizer.nextToken() vai te retornar o proximo elemento
     // vc pode usa-lo no execute() do seu statement JDBC
}
shadowjava

Seguinte me apareceu mais uma duvida :

CREATE TABLE TESTE( ID_TESTE INTEGER NOT NULL, DS_TESTE);

CREATE TABLE TESTE2( ID_TESTE INTEGER NOT NULL,
DS_TESTE,
DT_TESTE TIMESTAMP );

OUTRO_COMANDO_DE_CRIAR_TABELA

  • no arquivo txt não estão os comandos para o sql como citado acima .

no bloco se encontra desta forma :

Leito.txt ( nome do documento )

Coluna ,Tamanho, Inicio, Fim, Tipo
CO_TIPO_LEITO ,2, 1, 2, VARCHAR2
NO_TIPO_LEITO, 60, 3, 62, VARCHAR2
DT_COMPETENCIA,6, 63, 68, DATE

a principio gostaria apenas de criar a tabela

tipo :

no diretorio há vários arquivos txt , como faço prar criar tabelas apartir de txt ?

o eclipse já está devidamente configurado com o banco de dados.

pissurno

qual banco vc esta utilizando para isso? ou vc quer algo generico.
ja fiz isso atravez de comandos sql em PostGreSql.
Tipo nada haver com java mas funciona perfeitamente.
caso tenha interesse é so me dizer.

flw

fabim

Bom cara da pra fazer sim, basta vc listar os arquivos no diretorio ( pelo que estou vendo cada arquivo sera uma tabela, pelo menos é o q me parece
qdo vejo um Leito.txt ) e ir criando as tabelas.

Como vc vai fazer pra montar a String de DDL ai deixo pra vc pq tem q pensar em cima disso :wink:

shadowjava

DLL? como assim?

fabim

DLL nao cara… DDL

Data Definition: Criar tabelas, etc…
Data Manipulation: Inserts, Selects, etc…

shadowjava

AAAAAA sim !

Saquei!

shadowjava

por enquanto só consegui somar o numero de arquivos do diretorio

import java.io.File;   
  
public class Classe_Search {   
  
    private static int cont = 0;   
    /**  
     *  
     * @param args  
     */   
    public static void main( String[] args ){   
  
        String dir = "C:\Tabelas\";   
        File diretorio = new File(dir);   
        listFiles(diretorio);   
  
        System.out.println(cont);   
  
    }   
  
    /**  
     * Conta o total de arquivo num determinado diretorio  
     *  
     * @param diretorio  
     */   
    private static void listFiles( File diretorio ){   
  
        String[] arquivos = diretorio.list();   
  
        for (int i = 0; i < arquivos.length; i++ ){   
  
            String string = arquivos[i];   
  
            File diretorioRaiz = new File(diretorio.getAbsolutePath() + "\" + string);   
  
            if ( diretorioRaiz.isDirectory() ){   
                listFiles(diretorioRaiz);   
            } else if ( diretorioRaiz.isFile() ){   
  
                String nameFile = diretorioRaiz.getName();   
  
                int fileSize = nameFile.length();   
  
                String extensao = nameFile.substring(fileSize - 4 , fileSize);   
  
                if(extensao.compareToIgnoreCase(".txt")==0)   
                    cont++;   
                
                
  
            } else{   
                System.out.println("Nem arquivo nem diretorio!!!!!!");   
                System.out.println(string);   
            }   
  
        }   
    }   
}
Criado 24 de março de 2008
Ultima resposta 25 de mar. de 2008
Respostas 16
Participantes 7