[RESOLVIDO] Byte.parseByte

9 respostas Resolvido
java
jairodione

Olá Pessoal!

Estou desenvolvendo um sistema que guarda imagens no banco (Atributo do BD “BLOB”), e não estou conseguindo fazer a conversão de String para Byte no Servlet:

  • String pInternaf1 = request.getParameter(“p_internaf1”);

Mais embaixo tento fazer o seguinte:

if(pInternaf1 != null)
laudos.setP_internaf1(Byte.parseByte(pInternaf1));//tipos incompativeis

Na classe model está o atributo está declarado assim:
private byte[] p_internaf1;

Está surgindo o erro no Servlet justamente onde tento fazer a conversão de Byte para String como está descrito acima.

Como corrigir isto?

9 Respostas

javaflex

Se é um texto pq ta guardando como blob?
Ou se for um arquivo não faz sentido receber uma string na requisição.
Pode estar criando um problema que nao existe.

javaflex

Segue esse exemplo:

staroski

O método Byte.parseByte(String) converte um valor String em um byte.
Creio que você quer é um byte[], neste caso, a classe String dispõe de um método getBytes().

jairodione

Olá javaflex!

Eu nunca havia feito um sistema que acessa o banco que tem uma tabela armazenando imagens, o atributo no BD para esta linha da coluna é BLOB.Antes eu trabalhava guardando no BD o caminho da imagem não a imagem propriamente.
Estou apanhando muito, nesse servlet eu queria somente mostrar o formulario preenchido e com as fotos!!

jairodione

oá staroski!

É exatamente o que quero na classe modelo o atributo está declarado da seguinte foma:

private byte[] p_internaf1;

Fiz uma alteração no servlet, na linha que antigamente eu declarava como String agora declarei como Byte:

Byte pInternaf1 = Byte.parseByte(request.getParameter(“p_internaf1”));

mas na linha onde tento fazer o set, esta dando erro:

if(pInternaf1 != null)
laudos.setP_internaf1(pInternaf1);//AQUI ESTA ACONTECENDO O ERRO DEPOIS QUE FIZ ALTERAÇÃO NA VARIAVEL DE STRING PARA BYTE

Como poderia fazer isto:

if(pInternaf1 != null)

laudos.setP_internaf1(pInternaf1);

como poderia fazer isto:

no servlet pegando a informação como parametro?

javaflex

O exemplo que te passei mostra como postar a imagem e gravar no banco, sem essa gambiarra de conversão de texto. Evite overhead.

jairodione

Olá javaflex!

irei dar uma olhada no exemplo que você passou, mas antes fiz a seguinte alteração:

Byte pInternaf1 = Byte.parseByte(request.getParameter(“p_internaf1”));

mas continua dando erro na linha abaixo:

if(pInternaf1 != null)

laudos.setP_internaf1(pInternaf1);

Na classe modelo declarei o atributo desta forma:
private byte[] p_internaf1;

Talvez o erro esteja nisso.

jairodione
Solucao aceita

olá pessoal!

Consegui solucionar o problema com um amigo meu, fizemos as seguintes alterações:
“JÁ DEVE EXISTIR AS IMAGENS GRAVADAS NO BD”

  • Na classe LaudosDAO foi criado um metodo
public Laudos find(String codigo) throws SQLException {

Laudos laudo = null;

String sql = select * from laudos where codigo = ?;
PreparedStatement stmt = conexao.prepareStatement(sql);
    stmt.setString(1, codigo);

    ResultSet result = stmt.executeQuery();
    if (result.next()) {
        String laudoCodigo = result.getString("codigo");
        byte[] pInternaf1 = result.getBytes("p_internaf1");
        byte[] pExternaf1 = result.getBytes("p_externaf1");
        byte[] murosf1 = result.getBytes("murosf1");
        byte[] tetof1 = result.getBytes("tetof1");
        byte[] luminariaf1 = result.getBytes("luminariaf1");
        byte[] pisof1 = result.getBytes("pisof1");
        byte[] portasf1 = result.getBytes("portasf1");
        byte[] portasf2 = result.getBytes("portasf2");
        byte[] janelasf1 = result.getBytes("janelasf1");
        byte[] soleirasf1 = result.getBytes("soleirasf1");
        byte[] basculantesf1 = result.getBytes("basculantesf1");
        byte[] fechaduraf1 = result.getBytes("fechaduraf1");
        byte[] piasf1 = result.getBytes("piasf1");
        byte[] torneirasf1 = result.getBytes("torneirasf1");
        byte[] vSanitariof1 = result.getBytes("v_sanitariof1");
        byte[] instElef1 = result.getBytes("inst_eletricaf1");
        byte[] tomIntrrf1 = result.getBytes("tom_interrupf1");
        byte[] disjuntorf1 = result.getBytes("disjuntorf1");
        byte[] instHidraf1 = result.getBytes("inst_hidraf1");
        byte[] chuveirof1 = result.getBytes("chuveirof1");
        byte[] boxf1 = result.getBytes("boxf1");
        byte[] laudoAcesbanf1 = result.getBytes("aces_banf1");
        byte[] moveisf1 = result.getBytes("moveisf1");
        byte[] mobiliaf1 = result.getBytes("mobiliaf1");
        
        laudo = new Laudos();
        laudo.setP_internaf1(pInternaf1);
        laudo.setP_externaf1(pExternaf1);
        laudo.setMurosf1(murosf1);
        laudo.setTetof1(tetof1);
        laudo.setLuminariaf1(luminariaf1);
        laudo.setPisof1(pisof1);
        laudo.setPortasf1(portasf1);
        laudo.setJanelasf1(janelasf1);
        laudo.setSoleirasf1(soleirasf1);
        laudo.setBasculantesf1(basculantesf1);
        laudo.setFechaduraf1(fechaduraf1);
        laudo.setPiasf1(piasf1);
        laudo.setTorneirasf1(torneirasf1);
        laudo.setVsanitariof1(vSanitariof1);
        laudo.setInsteletricaf1(instElef1);
        laudo.setTominterrupf1(tomIntrrf1);
        laudo.setDisjuntorf1(disjuntorf1);
        laudo.setInsthidraf1(instHidraf1);
        laudo.setChuveirof1(chuveirof1);
        laudo.setBoxf1(boxf1);
        laudo.setAcesbanf1(laudoAcesbanf1);
        laudo.setMoveisf1(moveisf1);
        laudo.setMobiliaf1(mobiliaf1);
        //System.out.println("Alterar Laudos para setar Base64 " + Base64.getEncoder().encodeToString(laudo.getAcesbanf1()));
    }

    return laudo;
    
}
  • Criamos um novo servlet:
    
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    
    throws ServletException, IOException {
    
    LaudosDAO laudosDao = new LaudosDAO();
    
    String codigo = request.getParameter(codigo);
    
    Laudos teste = null;
    
    try {
    
    teste = laudosDao.find(codigo);
    
    } catch (SQLException ex) {
    
    Logger.getLogger(LaudosCRUD.class.getName()).log(Level.SEVERE, null, ex);
    
    }
    
    request.setAttribute("laudo", teste);
     request.setAttribute("paredeInternaf1", getBase64(teste.getP_internaf1()));
     request.setAttribute("paredeInternaf2", getBase64(teste.getP_internaf2()));
     request.setAttribute("paredeInternaf3", getBase64(teste.getP_internaf3()));
     request.setAttribute("paredeInternaf4", getBase64(teste.getP_internaf4()));
     request.setAttribute("paredeInternaf5", getBase64(teste.getP_internaf5()));
     request.setAttribute("paredeExternaf1", getBase64(teste.getP_externaf1()));
     request.setAttribute("paredeExternaf2", getBase64(teste.getP_externaf2()));
     request.setAttribute("paredeExternaf3", getBase64(teste.getP_externaf3()));
     request.setAttribute("paredeExternaf4", getBase64(teste.getP_externaf4()));
     request.setAttribute("paredeExternaf5", getBase64(teste.getP_externaf5()));
     request.setAttribute("murosf1", getBase64(teste.getMurosf1()));
     request.setAttribute("murosf2", getBase64(teste.getMurosf2()));
     request.setAttribute("murosf3", getBase64(teste.getMurosf3()));
     request.setAttribute("murosf4", getBase64(teste.getMurosf4()));
     request.setAttribute("murosf5", getBase64(teste.getMurosf5()));
     request.setAttribute("tetof1", getBase64(teste.getTetof1()));
     request.setAttribute("tetof2", getBase64(teste.getTetof2()));
     request.setAttribute("tetof3", getBase64(teste.getTetof3()));
     request.setAttribute("tetof4", getBase64(teste.getTetof4()));
     request.setAttribute("tetof5", getBase64(teste.getTetof5()));
     request.setAttribute("luminariaf1", getBase64(teste.getLuminariaf1()));
     request.setAttribute("luminariaf2", getBase64(teste.getLuminariaf2()));
     request.setAttribute("luminariaf3", getBase64(teste.getLuminariaf3()));
     request.setAttribute("luminariaf4", getBase64(teste.getLuminariaf4()));
     request.setAttribute("luminariaf5", getBase64(teste.getLuminariaf5()));
     request.setAttribute("pisof1", getBase64(teste.getPisof1()));
     request.setAttribute("pisof2", getBase64(teste.getPisof2()));
     request.setAttribute("pisof3", getBase64(teste.getPisof3()));
     request.setAttribute("pisof4", getBase64(teste.getPisof4()));
     request.setAttribute("pisof5", getBase64(teste.getPisof5()));
     request.setAttribute("portasf1", getBase64(teste.getPortasf1()));
     request.setAttribute("portasf2", getBase64(teste.getPortasf2()));
     request.setAttribute("portasf3", getBase64(teste.getPortasf3()));
     request.setAttribute("portasf4", getBase64(teste.getPortasf4()));
     request.setAttribute("portasf5", getBase64(teste.getPortasf5()));
     request.setAttribute("janelasf1", getBase64(teste.getJanelasf1()));
     request.setAttribute("janelasf2", getBase64(teste.getJanelasf2()));
     request.setAttribute("janelasf3", getBase64(teste.getJanelasf3()));
     request.setAttribute("janelasf4", getBase64(teste.getJanelasf4()));
     request.setAttribute("janelasf5", getBase64(teste.getJanelasf5()));
     request.setAttribute("soleirasf1", getBase64(teste.getSoleirasf1()));
     request.setAttribute("soleirasf2", getBase64(teste.getSoleirasf2()));
     request.setAttribute("soleirasf3", getBase64(teste.getSoleirasf3()));
     request.setAttribute("soleirasf4", getBase64(teste.getSoleirasf4()));
     request.setAttribute("soleirasf5", getBase64(teste.getSoleirasf5()));
     request.setAttribute("basculantesf1", getBase64(teste.getBasculantesf1()));
     request.setAttribute("basculantesf2", getBase64(teste.getBasculantesf2()));
     request.setAttribute("basculantesf3", getBase64(teste.getBasculantesf3()));
     request.setAttribute("basculantesf4", getBase64(teste.getBasculantesf4()));
     request.setAttribute("basculantesf5", getBase64(teste.getBasculantesf5()));
     request.setAttribute("fechaduraf1", getBase64(teste.getFechaduraf1()));
     request.setAttribute("fechaduraf2", getBase64(teste.getFechaduraf2()));
     request.setAttribute("fechaduraf3", getBase64(teste.getFechaduraf3()));
     request.setAttribute("fechaduraf4", getBase64(teste.getFechaduraf4()));
     request.setAttribute("fechaduraf5", getBase64(teste.getFechaduraf5()));
     request.setAttribute("piasf1", getBase64(teste.getPiasf1()));
     request.setAttribute("piasf2", getBase64(teste.getPiasf2()));
     request.setAttribute("piasf3", getBase64(teste.getPiasf3()));
     request.setAttribute("piasf4", getBase64(teste.getPiasf4()));
     request.setAttribute("piasf4", getBase64(teste.getPiasf5()));
     request.setAttribute("torneirasf1", getBase64(teste.getTorneirasf1()));
     request.setAttribute("torneirasf2", getBase64(teste.getTorneirasf2()));
     request.setAttribute("torneirasf3", getBase64(teste.getTorneirasf3()));
     request.setAttribute("torneirasf4", getBase64(teste.getTorneirasf4()));
     request.setAttribute("torneirasf5", getBase64(teste.getTorneirasf5()));
     request.setAttribute("v_sanitariof1", getBase64(teste.getVsanitariof1()));
     request.setAttribute("v_sanitariof2", getBase64(teste.getVsanitariof2()));
     request.setAttribute("v_sanitariof3", getBase64(teste.getVsanitariof3()));
     request.setAttribute("v_sanitariof4", getBase64(teste.getVsanitariof4()));
     request.setAttribute("v_sanitariof5", getBase64(teste.getVsanitariof5()));
     request.setAttribute("inst_eletricaf1", getBase64(teste.getInsteletricaf1()));
     request.setAttribute("inst_eletricaf2", getBase64(teste.getInsteletricaf2()));
     request.setAttribute("inst_eletricaf3", getBase64(teste.getInsteletricaf3()));
     request.setAttribute("inst_eletricaf4", getBase64(teste.getInsteletricaf4()));
     request.setAttribute("inst_eletricaf5", getBase64(teste.getInsteletricaf5()));
     request.setAttribute("tom_interrupf1", getBase64(teste.getTominterrupf1()));
     request.setAttribute("tom_interrupf2", getBase64(teste.getTominterrupf2()));
     request.setAttribute("tom_interrupf3", getBase64(teste.getTominterrupf3()));
     request.setAttribute("tom_interrupf4", getBase64(teste.getTominterrupf4()));
     request.setAttribute("tom_interrupf5", getBase64(teste.getTominterrupf5()));
     request.setAttribute("disjuntorf1", getBase64(teste.getDisjuntorf1()));
     request.setAttribute("disjuntorf2", getBase64(teste.getDisjuntorf2()));
     request.setAttribute("disjuntorf3", getBase64(teste.getDisjuntorf3()));
     request.setAttribute("disjuntorf4", getBase64(teste.getDisjuntorf4()));
     request.setAttribute("disjuntorf5", getBase64(teste.getDisjuntorf5()));
     request.setAttribute("inst_hidraf1", getBase64(teste.getInsthidraf1()));
     request.setAttribute("inst_hidraf2", getBase64(teste.getInsthidraf2()));
     request.setAttribute("inst_hidraf3", getBase64(teste.getInsthidraf3()));
     request.setAttribute("inst_hidraf4", getBase64(teste.getInsthidraf4()));
     request.setAttribute("inst_hidraf5", getBase64(teste.getInsthidraf5()));
     request.setAttribute("chuveirof1", getBase64(teste.getChuveirof1()));
     request.setAttribute("chuveirof2", getBase64(teste.getChuveirof2()));
     request.setAttribute("chuveirof3", getBase64(teste.getChuveirof3()));
     request.setAttribute("chuveirof4", getBase64(teste.getChuveirof4()));
     request.setAttribute("chuveirof5", getBase64(teste.getChuveirof5()));
     request.setAttribute("boxf1", getBase64(teste.getBoxf1()));
     request.setAttribute("boxf2", getBase64(teste.getBoxf2()));
     request.setAttribute("boxf3", getBase64(teste.getBoxf3()));
     request.setAttribute("boxf4", getBase64(teste.getBoxf4()));
     request.setAttribute("boxf5", getBase64(teste.getBoxf5()));
     request.setAttribute("boxf1", getBase64(teste.getBoxf1()));
     request.setAttribute("acesbanf1", getBase64(teste.getAcesbanf1()));
     request.setAttribute("acesbanf2", getBase64(teste.getAcesbanf2()));
     request.setAttribute("acesbanf3", getBase64(teste.getAcesbanf3()));
     request.setAttribute("acesbanf4", getBase64(teste.getAcesbanf4()));
     request.setAttribute("acesbanf5", getBase64(teste.getAcesbanf5()));
     request.setAttribute("moveisf1", getBase64(teste.getMoveisf1()));
     request.setAttribute("moveisf2", getBase64(teste.getMoveisf2()));
     request.setAttribute("moveisf3", getBase64(teste.getMoveisf3()));
     request.setAttribute("moveisf4", getBase64(teste.getMoveisf4()));
     request.setAttribute("moveisf5", getBase64(teste.getMoveisf5()));
     request.setAttribute("mobiliaf1", getBase64(teste.getMobiliaf1()));
     request.setAttribute("mobiliaf2", getBase64(teste.getMobiliaf2()));
     request.setAttribute("mobiliaf3", getBase64(teste.getMobiliaf3()));
     request.setAttribute("mobiliaf4", getBase64(teste.getMobiliaf4()));
     request.setAttribute("mobiliaf5", getBase64(teste.getMobiliaf5()));
     request.setAttribute("mobiliaf6", getBase64(teste.getMobiliaf6()));
     request.setAttribute("mobiliaf7", getBase64(teste.getMobiliaf7()));
     request.setAttribute("mobiliaf8", getBase64(teste.getMobiliaf8()));
     request.setAttribute("mobiliaf9", getBase64(teste.getMobiliaf9()));
     request.setAttribute("mobiliaf10", getBase64(teste.getMobiliaf10()));
     request.setAttribute("mobiliaf11", getBase64(teste.getMobiliaf11()));
     request.setAttribute("mobiliaf12", getBase64(teste.getMobiliaf12()));
     request.setAttribute("mobiliaf13", getBase64(teste.getMobiliaf13()));
     request.setAttribute("mobiliaf14", getBase64(teste.getMobiliaf14()));
     request.setAttribute("mobiliaf15", getBase64(teste.getMobiliaf15()));
     RequestDispatcher rd = request.getRequestDispatcher("/laudos2.jsp");
     
     rd.forward(request, response);
    

    }

    private String getBase64(byte[] imagem) {
    
    if (imagem != null && imagem.length > 0) {
    
    return Base64.getEncoder().encodeToString(imagem);
    
    }
    
    return null;
    
    }
    
    }
    
  • pagina jsp fizemos isso:

Sistema Para Vistoria de Imóveis

Laudo de Vistoria Imobiliária Metropole

Codigo.:

Endereco.:

Bairro.: Proximo.:

Inquilino.:

Telefone.: Telefone.: Telefone.:

Fotos Parede Interna.:

Observações Parede Interna.:
${laudo.p_internaObs}
Fotos Parede Externa.:

Observações Parede Externa.:
${laudo.p_externaObs}
Fotos Muro.:

Observações Muros.:
${laudo.murosObs}
Fotos Teto.:

Observações Teto.:
${laudo.tetoObs}
Fotos Luminarias.:

Observações Luminarias.:
${laudo.luminariaObs}
Fotos Piso.:

Observações Piso.:
${laudo.pisoObs}
Fotos Portas.:

Observações Portas.:
${laudo.portasObs}
Fotos Janelas.:

Observações Janelas.:
${laudo.janelasObs}
Fotos Soleiras.:

Observações Soleiras.:
${laudo.soleirasObs}
Fotos Basculantes.:

Observações Basculantes.:
${laudo.basculantesObs}
Fotos Fechaduras.:

Observações Fechaduras.:
${laudo.fechaduraObs}
Fotos Pias.:

Observações Pias.:
${laudo.piasObs}
Fotos Torneiras.:

Observações Torneiras.:
${laudo.torneirasObs}
Fotos Vaso Sanitários.:

Observações Vasos Sanitarios.:
${laudo.vsanitarioObs}
Fotos Instalações Eletricas.:

Observações Instalações Eletricas.:
${laudo.insteletricaObs}
Fotos Tomadas Interruptores.:

Observações Tomadas Interruptores.:
${laudo.tominterrupObs}
Fotos Disjuntores.:

Observações Disjuntores.:
${laudo.disjuntorObs}
Fotos Instalações Hidraulicas.:

Observações Instalações Hidraulicas.:
${laudo.insthidraObs}
Fotos Chuveiros.:

Observações Chuveiros.:
${laudo.chuveiroObs}
Fotos Box.:

Observações Box.:
${laudo.boxObs}
Fotos Acessórios Banheiros.:

Observações Acessórios Banheiros.:
${laudo.acesbanObs}
Fotos Moveis.:

Observações Moveis.:
${laudo.moveisObs}
Fotos Mobilias.:

Observações Mobilia.:
${laudo.mobiliaObs}

Pronto funcionou perfeitamente!!

javaflex

Nao tem haver com o problema reportado, mas essa modelagem está bem esquisita. O que deveriam ser linhas em uma tabela, estao como um monte de campos. Fora a conversão pra texto sem necessidade.

Criado 21 de dezembro de 2018
Ultima resposta 1 de jan. de 2019
Respostas 9
Participantes 3