Blob Imagem to ZIP

1 resposta
douglasmanteiga

Ai pessoal tenho esse método que me traz do banco Uma descrição e uma imagem do Tipo Blob
e adiciona tudo em um List

public List<DocumentoBean> consultaDocumentos(UsuarioBean usuarioBean) throws SQLException {
        
        PreparedStatement preparedStatement;
        Connection conexao = BancoDAO.getBancoDao();
        ResultSet resultSet;
        
        DocumentoBean documentoBean;
        List<DocumentoBean> listaDocumentos = new ArrayList<DocumentoBean>();
        
        StringBuilder query = new StringBuilder();
        
        query.append(" SELECT");
        query.append("      USU.USU_NOME, TIPO_DOC.DOC_DESCRICAO, ");
        query.append("      IMG_DOC.IMD_IMAGEM ");
        query.append(" FROM");
        query.append("      IMAGEM_DOCUMENTO IMG_DOC JOIN ");
        query.append("      USU_DOCUMENTO USU_DOC ON (IMG_DOC.IMD_COD = USU_DOC.IMD_COD) JOIN ");
        query.append("      TIPO_DOCUMENTO TIPO_DOC ON (USU_DOC.DOC_COD = TIPO_DOC.DOC_COD) JOIN ");
        query.append("      USUARIO USU ON (USU_DOC.USU_COD = USU.USU_COD) ");
        query.append("      WHERE USU.USU_COD = ?");
        
        preparedStatement = conexao.prepareStatement(query.toString());
        preparedStatement.setLong(1, usuarioBean.getCodigo());
        
        resultSet = preparedStatement.executeQuery();
        
        while(resultSet.next()) {
            
            documentoBean = new DocumentoBean();

            documentoBean.setNomeDocumento(resultSet.getString("DOC_DESCRICAO"));
            documentoBean.setDocumento(resultSet.getBlob("IMD_IMAGEM"));
            
            listaDocumentos.add(documentoBean);
            
        }
        
        return listaDocumentos;
    }
}

Depois tenho essa classe que lê cada linha do meu List

public class DocumentoBO {

    public static void main(String[] args) {

        DocumentoBO documentoBO = new DocumentoBO();
        UsuarioBean usuarioBean = new UsuarioBean();
        usuarioBean.setCodigo(1258L);

        DocumentoBean documentoBean = new DocumentoBean();

        try {
            documentoBean.setListaDocumentos(documentoBO.listaDocumentos(usuarioBean));

            for (DocumentoBean doc : documentoBean.getListaDocumentos()) {
                System.out.println(doc.getNomeDocumento());
                System.out.println(doc.getDocumento());
            }


        } catch (SQLException ex) {
            Logger.getLogger(DocumentoBO.class.getName()).log(Level.SEVERE, null, ex);
        }

    }

    public List<DocumentoBean> listaDocumentos(UsuarioBean usuario) throws SQLException {

        DocumentoBean documentoBean = new DocumentoBean();
        DocumentoDAO documentoDAO = new DocumentoDAO();

        documentoBean.setListaDocumentos(documentoDAO.consultaDocumentos(usuario));

        return documentoBean.getListaDocumentos();
    }
}

Agora como que consigo fazer a saída de um arquivo ZIP com minhas imagens dentro e cada imagem com o nome do Documento?

1 Resposta

J

Você pode usar o ZipOutputStream.

Veja aqui:

Acredito que consiga jogar os bytes do blob direto pro zip…

Criado 26 de outubro de 2012
Ultima resposta 26 de out. de 2012
Respostas 1
Participantes 2