Olá para todos, estou desenvolvendo um aplicativo no NetBeans que gera um arquivo texto para imprimir em uma impressora térmica.
O arquivo é gerado e a impressora imprime porém eu preciso de inserir informações vinda de um banco de dados, fiz a conexão e testei gerar uma lista com println, tudo correu perfeitamente, inclusive peguei diversos tutoriais aqui no GUJ.
Porém ao tentar inserir as informações do banco no arquivo texto o programa simplesmente não consegue fazer o loop para gerar o arquivo, se eu tiro os comandos para inserir o arquivo funciona, se eu coloco ele nem lista o primeiro arquivo.
vou encaminhando os códigos aqui, se alguém se habilitar desde já eu agradeço
GeraCodigoBarra.javapackage atuasi;
//pacotes a serem importados
import java.io.File;
import java.io.FileWriter;
import java.io.FileReader;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.ResultSet;
/**
*
* @author btolinux
*/
public class GeraCodigoBarra {
File arquivoBase, arquivoGerado;
FileReader abrirBase;
FileWriter abrirGera;
PrintWriter escreverArq;
BufferedReader br;
StringBuffer bufSaida = new StringBuffer();
String linha;
public GeraCodigoBarra() throws IOException, ClassNotFoundException {
//Pegando a primeira parte do arquivo no modelo argox
arquivoBase = new File("argox.txt");
abrirBase = new FileReader(arquivoBase);
//Criando o arquivo que vai ser utilizado
arquivoGerado = new File("argox1.txt");
abrirGera = new FileWriter(arquivoGerado, true);
//Liberando para escrever no arquivo
escreverArq = new PrintWriter(abrirGera);
//Gerando arquivo de buffer para ler
br = new BufferedReader(new FileReader(arquivoBase));
//++++++++++++++++++++++++++++
//esta lista não tá dando o loop, quando eu coloco os campos no System.out.printf funciona...
//quando eu volto para imprimir no arquivo dá erro
//++++++++++++++++++++++++++++
//Listar o nome dos participantes e seus códigos e inserir no arquivo
try{
//Objeto para conectar a base de dados
ConectarDB conecte = new ConectarDB();
//Recebendo a lista de dados
ResultSet lista = conecte.QueryResult("SELECT PK_Cadastro, DS_Participante FROM cadastros");
String codigo, participante;
//O arquivo gerado será carregado com informações do arquivo base.
while((linha = br.readLine()) != null ){
bufSaida.append(linha + "\n");
}
//fechando o arquivo de linha para inserir o texto
br.close();
//Lendo a lista de arquivos
while(lista.next()){
//carregando os valores do banco para imprimir a lista
codigo = lista.getString("PK_Cadastro");
participante = lista.getString("DS_Participante");
//Se eu tiro o resto de deixo isso funciona...
//System.out.println("--> "+codigo+" - "+participante);
//inserindo o arquivo de buffer com os dados do arquivo base
escreverArq.print(bufSaida.toString());
//agora inserindo os novos dados.
escreverArq.println("1F6006000200260"+String.format("%012d", codigo));
escreverArq.println("122203500000010Ã"+participante);
escreverArq.println("Q0001");
escreverArq.println("E");
}
//sair do sistema
conecte.DesConnection();
} catch (Exception e) {}
//fechando os arquivos
escreverArq.close();
abrirGera.close();
abrirBase.close();
}
}
package atuasi;
import java.sql.*;
import javax.swing.JOptionPane;
/**
*
* @author btolinux
*/
public class ConectarDB {
//variáveis para conectar com o banco
private static String driver = "com.mysql.jdbc.Driver";
private static String url = "jdbc:mysql://localhost:3306/promessa33_2";
private static String user = "root";
private static String password = "0acessoroot4321";
//private static String caractere = "useUnicode=true ";
public static Connection con = null;
public static Connection getConnection() throws SQLException {
try {
Class.forName(driver);
con = DriverManager.getConnection(url, user, password);
return con;
} catch (ClassNotFoundException e) {
JOptionPane.showMessageDialog(null, "Não foi possivel conectar ao banco de dados. \nErro no Driver.");
throw new SQLException(e.getMessage());
}
}
public static void DesConnection() throws SQLException {
//Desconectar o banco
con.close();
JOptionPane.showMessageDialog(null, "Banco desconectado.");
}
public ResultSet QueryResult(String Query){
Statement stm = null;
try{
getConnection();
stm = con.createStatement();
return stm.executeQuery(Query);
} catch (SQLException ex) {
return null;
}
}
}
Bem acho que é isso. No main eu chamo esse arquivo através de um JFrame, mas estava fazendo ele direto também e dava o mesmo erro.
Obrigado à todos pela atenção e fico no aguardo