Linux slogan
Visite também: BR-Linux.org · Dicas-L · Doode · NoticiasLinux · SoftwareLivre.org · UnderLinux



» Screenshot
Linux: Slackware 10.
Por xkillerrx
» Login
Login:
Senha:

Se você ainda não possui uma conta, clique aqui.

Esqueci minha senha



Artigo

Imagens e áudio no banco de dados Oracle
Linux user
joserribeirojuni
13/07/2010
Esse artigo apresenta uma forma bastante simples de se trabalhar com campos BLOB no Oracle, inserindo e resgatando áudio e imagens.
Por: Jose Ribeiro | Blog: http://tuxjr.wordpress.com
[ Hits: 15666 ]
Conceito: 10.0   2 voto(s)2 voto(s)2 voto(s)2 voto(s)2 voto(s) + quero dar nota ao artigo

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

Leitura recomendada

Comentários
Nenhum comentário foi encontrado.

Contribuir com comentário


  
Para executar esta ação você precisa estar logado no site, caso contrário, tudo o que for digitado será perdido.
Responsável pelo site: Fábio Berbert de Paula - Conteúdo distribuído sob licença GNU FDL
Site hospedado por:

Viva o Linux

A maior comunidade Linux da América Latina! Artigos, dicas, tutoriais, fórum, scripts e muito mais. Ideal para quem busca auto-ajuda em Linux.