Conteúdo (em partes) de um arquivo para uma table do DB - problemas

0 respostas
A
Olá, estou tentando passar o conteúdo (em pedaços menores) de um arquivo para o banco de dados. Estou fazendo assim:
String banco = dadosDB[0];
	String nomeDaTabela = dadosDB[1];
	String porta = dadosDB[2];
	String nomeDoBanco = dadosDB[3];
	String ip = dadosDB[4];
	String usuario = dadosDB[5];
	String senha = dadosDB[6];
	String fonte = informacoes.criarStringFonte(banco, ip, porta, nomeDoBanco);

	Class.forName(informacoes.criarStringClassDriver(banco));
	Connection con = DriverManager.getConnection(fonte, usuario, senha);

	
	Statement stm = con.createStatement();
	
	
	
	int quantosDadosJaForamInseridos = 1;
	
	

         FileInputStream arquivo = new FileInputStream(caminhoDoArquivo);  
         byte[] bytes = new byte[6];
         int quantosCaracteresLeu = 0;
         
         while ((quantosCaracteresLeu = (arquivo.read(bytes, 0, 6))) != -1) {
         	String caracteres = "";

         	//converte os bytes separados em uma única String
         	for (int i = 0; i < quantosCaracteresLeu; i++) {
         		caracteres = caracteres + (char) bytes[i];
         	}
         	
         	
         	//os 6 caracteres atuais que devem ser inseridos no BD estão na var caracteres
         	System.out.println(caracteres);
         	
         	ResultSet rs = stm.executeQuery("INSERT INTO " + nomeDaTabela + " VALUES ('" + caracteres +"')");
	

         	
         	quantosDadosJaForamInseridos++;
         	
         	
         	
         	
         }
         
         arquivo.close();
  


	
		con.close();
		stm.close();
		//rs.close();
		}

Só que ele só ta adicionando a primeira leitura.

Por exemplo, se o arquivo tiver isso:
123456654321
Ele adiciona no banco de dados isso: 123456, o resto não. Ou seja, o while que eu uso para ler o arquivo só executa uma vez, mas se eu tirar a linha
ResultSet rs = stm.executeQuery("INSERT INTO " + nomeDaTabela + " VALUES ('" + caracteres +"')");
De dentro dele, aí ele lê o arquivo inteiro. Alguém pode me dizer por que o while só é executado uma vez quando essa linha está dentro dele, sendo que quando ela não está ele executa corretamente (no caso: 2 vezes)?
Criado 16 de março de 2010
Respostas 0
Participantes 1