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.083 ]

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

Criando um banco de dados no Flamerobin (Firebird)

Introdução as Gambas (parte 1)

OTRS - Revolucione seu Help Desk com esta ferramenta

BrOffice.org BASE: Criando banco de dados em 5 minutos

Gambas2 e MySQL, aprofundando relações

Leitura recomendada

Arch Linux + NetBeans + MySQL + Oracle 10g

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

Criando classe Java para conectar e manipular dados no MySQL

Conectando com Bco Interbase/Firebird em Java

Hibernate - Persistindo dados como se fosse objetos

  
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