Bom dia
Estou desenvolvendo uma aplicação JSF e não estou conseguindo executar um metodo para fazer a leitura do arquivo.
Alguem pode me ajudar, eswtou postando minhas classes:
public class DadosParaRetirada {
//registro header
private static String cdEscob;
private static String cdBanco;
private static String tpReg;
private static String idArq;
private static String dtBase;
private static String dtGera;
private static String nrArq;
private static String dtEnvio;
private static String hrenvio;
private static String filler;
//registro retirada
private static String nrPessoa;
private static String nmDevedor;
private static String nrOpr;
private static String cdEnvio;
private static String cdRemessa;
private static String cdPrd;
private static String nmPrd;
private static String vlrDivida;
private static String cdMotRetirada;
private static String dsMotretirada;
private static String idRetIncond;
//trailler
//private static String cdEscob;
//private static String cdBanco;
//private static String tpReg;
private static String qtdTotReg;
//private static String filler;
//getters and setters
}
public class DadosParaRetiradaDAO extends DataBaseUtil {
public DadosParaRetiradaDAO() {
}
public boolean adicionaDadosParaRetiradaHeader(DadosParaRetirada dpr) throws ClassNotFoundException, SQLException {
PreparedStatement ps = pegaDeclaracaoPreparada("insert into header values(?,?,?,?,?,?,?,?,?,?)");
ps.setString(1, dpr.getCdEscob());
ps.setString(2, dpr.getCdBanco());
ps.setString(3, dpr.getTpReg());
ps.setString(4, dpr.getIdArq());
ps.setString(5, dpr.getDtBase());
ps.setString(6, dpr.getDtGera());
ps.setString(7, dpr.getNrArq());
ps.setString(8, dpr.getDtEnvio());
ps.setString(9, dpr.getHrenvio());
ps.setString(10, dpr.getFiller());
boolean toReturn = ps.execute();
ps.close();
return toReturn;
}
public boolean adicionaDadosParaRetiradaRetirada(DadosParaRetirada dpr) throws ClassNotFoundException, SQLException {
PreparedStatement ps = pegaDeclaracaoPreparada("insert into retirada values(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)");
ps.setString(1, dpr.getCdEscob());
ps.setString(2, dpr.getCdBanco());
ps.setString(3, dpr.getTpReg());
ps.setString(4, dpr.getNrPessoa());
ps.setString(5, dpr.getNmDevedor());
ps.setString(6, dpr.getNrOpr());
ps.setString(7, dpr.getCdEnvio());
ps.setString(8, dpr.getCdRemessa());
ps.setString(9, dpr.getCdPrd());
ps.setString(10, dpr.getNmPrd());
ps.setString(11, dpr.getVlrDivida());
ps.setString(12, dpr.getCdMotRetirada());
ps.setString(13, dpr.getDsMotretirada());
ps.setString(14, dpr.getIdRetIncond());
ps.setString(15, dpr.getFiller());
boolean toReturn = ps.execute();
ps.close();
return toReturn;
}
public boolean adicionaDadosParaRetiradaTrailler(DadosParaRetirada dpr) throws ClassNotFoundException, SQLException {
PreparedStatement ps = pegaDeclaracaoPreparada("insert into trailler values(?,?,?,?,?)");
ps.setString(1, dpr.getCdEscob());
ps.setString(2, dpr.getCdBanco());
ps.setString(3, dpr.getTpReg());
ps.setString(4, dpr.getQtdTotReg());
ps.setString(5, dpr.getFiller());
boolean toReturn = ps.execute();
ps.close();
return toReturn;
}
public boolean limpaBaseParaRetirada(DadosParaRetirada dpr) throws ClassNotFoundException, SQLException{
PreparedStatement ps = pegaDeclaracaoPreparada("delete from retirada");
boolean ToReturn = ps.execute();
ps.close();
return ToReturn;
}
}
public class LeituraDAO {
public static void Leia(String arquivo) throws FileNotFoundException, IOException, ClassNotFoundException, SQLException {
DadosParaRetirada dpr = new DadosParaRetirada();
DadosParaRetiradaDAO d = new DadosParaRetiradaDAO();
BufferedReader naLinha = null;
naLinha = new BufferedReader(new FileReader(arquivo));
String linha = null;
//limpando a base de retirada
d.limpaBaseParaRetirada(dpr);
while ((linha = naLinha.readLine()) != null) {
//leitura do registro header do arquivo
dpr.setCdEscob(linha.substring(0, 8));
dpr.setCdBanco(linha.substring(8, 12));
dpr.setTpReg(linha.substring(12, 14));
dpr.setIdArq(linha.substring(14, 58));
dpr.setDtBase(linha.substring(58, 66));
dpr.setDtGera(linha.substring(66, 74));
dpr.setNrArq(linha.substring(74, 79));
dpr.setDtEnvio(linha.substring(79, 87));
dpr.setHrenvio(linha.substring(87, 93));
dpr.setFiller(linha.substring(93, 300));
//leitura do registro de retirada do arquivo
dpr.setCdEscob(linha.substring(0, 8));
dpr.setCdBanco(linha.substring(8, 12));
//tipo de registro já lido
dpr.setNrPessoa(linha.substring(14, 22));
dpr.setNmDevedor(linha.substring(22, 72));
dpr.setNrOpr(linha.substring(72, 105));
dpr.setCdEnvio(linha.substring(105, 110));
dpr.setCdRemessa(linha.substring(110, 119));
dpr.setCdPrd(linha.substring(119, 128));
dpr.setNmPrd(linha.substring(128, 168));
dpr.setVlrDivida(linha.substring(168, 185));
dpr.setCdMotRetirada(linha.substring(185, 189));
dpr.setDsMotretirada(linha.substring(189, 239));
dpr.setIdRetIncond(linha.substring(239, 240));
dpr.setFiller(linha.substring(240, 300));
//trailler
dpr.setQtdTotReg(linha.substring(15,30));
System.out.println(dpr.getVlrDivida());
if (dpr.getTpReg().equals("00")) {
d.adicionaDadosParaRetiradaHeader(dpr);
} else if (dpr.getTpReg().equals("01")) {
d.adicionaDadosParaRetiradaRetirada(dpr);
} else {
d.adicionaDadosParaRetiradaTrailler(dpr);
}
}
naLinha.close();
}
} //leitura do registro de retirada do arquivo
Este é o manage bean que quero criar o metodo para leitura.
É nesta pagina que preciso chamar o metodo que irá fazer a leitura e não estou conseguindo
public class DadosParaRetiradaMB extends DataBaseUtil {
private static String arquivo;
LeituraDAO l = new LeituraDAO();
/** Creates a new instance of DadosParaRetiradaMB */
public DadosParaRetiradaMB() {
}
public static void chamaLeia() {
l.Leia(arquivo);
}
}
Esta é a pagina que vou integrar o manage bean
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Leitura</title>
</head>
<body>
<f:view>
<h:outputText value="Nome do arquivo: " />
<h:inputText />
<h:commandButton value="Processar" action="#{DadosParaRetiradaMB"> </h:commandButton>
</f:view>
</body>
</html>
Alguem tem idéia de como posso chamar esse metodo