[RESOLVIDO] Byte.parseByte

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?

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.

Segue esse exemplo:

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().

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!!

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?

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

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.

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!!

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.