Imagens e áudio no banco de dados Oracle

Esse artigo apresenta uma forma bastante simples de se trabalhar com campos BLOB no Oracle, inserindo e resgatando áudio e imagens.

[ Hits: 39.103 ]

Por: Jose Ribeiro em 13/07/2010 | Blog: https://serviceup.com.br/


Gravando os registro (formulário de inserção)



A próxima tarefa a ser realizada é a criação da página em html, para entrar com os dados. Então na página index.jsp que foi inserida por padrão no projeto você deixa sua programação da seguinte maneira:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!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>Cadastro</title>
    </head>
    <body>
        <form name="cadastro" action="NovoRegistro" method="POST" enctype="multipart/form-data">
            Numero:  <input type="text" name="nome" id="nome" /><br/>
            Foto: <input type="file" name="foto" id="foto" /><br/>
            Audio: <input type="file" name="audio" id="audio" /><br/>
            <input type="submit" value="Cadastrar"/>
        </form>
    </body>
</html>

Execute esse projeto e a tela do seu site deve ser essa aqui:
Agora temos que criar um servlet para receber esses dados do formulário e armazená-los no banco de dados. Para isso crie um servlet com o nome "NovoRegistro", respeite o maiúsculo pois Java é sensível a maiúsculo e minúsculo.

A programação que será inserida no servlet deve ser essa:

import java.beans.IntrospectionException;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
import java.io.IOException;
import java.io.PrintWriter;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;

public class NovoRegistro extends HttpServlet {

    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException, SQLException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();
        try {


            DiskFileItemFactory factory = new DiskFileItemFactory();
            ServletFileUpload sfu = new ServletFileUpload(factory);
            if (!ServletFileUpload.isMultipartContent(request)) {
                out.println("Upload da Imagem não realizado.");
                return;
            }
            List items = null;
            try {
                items = sfu.parseRequest(request);
            } catch (FileUploadException ex) {
            }
            FileItem n = (FileItem) items.get(0);
            String num = n.getString();
          int numero = Integer.parseInt(num);
            FileItem foto = (FileItem) items.get(1);
            FileItem audio = (FileItem) items.get(2);
            Connection con = Conectar.getConectar();
            con.setAutoCommit(false);
            PreparedStatement ps =
                    con.prepareStatement("INSERT INTO VOL VALUES (?,?,?)");
            ps.setInt(1, numero);
            ps.setBinaryStream(2, foto.getInputStream(), (int) foto.getSize());
            ps.setBinaryStream(3, audio.getInputStream(), (int) audio.getSize());
            ps.executeUpdate();
            con.commit();
            con.close();
            out.println(" Registro efetuado ");

        } finally {
            out.close();
        }
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(NovoRegistro.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        try {
            processRequest(request, response);
        } catch (SQLException ex) {
            Logger.getLogger(NovoRegistro.class.getName()).log(Level.SEVERE, null, ex);
        }
    }

    @Override
    public String getServletInfo() {
        return "Short description";
    }
}

Se faltar alguma biblioteca você deve inserir as que foram baixadas junto com a do driver Oracle.

Página anterior     Próxima página

Páginas do artigo
   1. Introdução
   2. Criando a classe de conexão
   3. Gravando os registro (formulário de inserção)
   4. Fazendo buscas - parte 1
   5. Fazendo buscas - parte 2
   6. Conclusão
Outros artigos deste autor

Gambas2: Inserindo dados em tabela SQLite

OTRS - Revolucione seu Help Desk com esta ferramenta

Gallery - Álbum de fotos no seu site

Gambas2 e MySQL, aprofundando relações

Mensageiro instantâneo

Leitura recomendada

Criar um Pool de Conexão entre o GlassFish 3.1 e PostgreeSQL

Trabalhando com Java e SQL (parte 1)

Hibernate - Persistindo dados como se fosse objetos

Criando classe Java para conectar e manipular dados no MySQL

Arch Linux + NetBeans + MySQL + Oracle 10g

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts