Almacenar imagen en SQL Server 2005 desde Java

Bueno, este post lo empece gracias a Xosel que me ha dado la iniciativa de crear un ejemplo de cómo guardar una imagen en SQL Server, en mi caso: la versión 2005.

Lo primero sería crear la conexión a la base de datos. Para ello tenemos ya un post que explica cómo hacerlo:

http://apuntes.delibertad.com/java/conexion-entre-sql-server-y-java/

Como ya he dicho en otros post: la interacción entre java y una base de datos va siendo casi lo mismo, por lo general la forma de conexión, las consultas, actualizaciones y demás conservan un 90% de similitud, pero bueno, vamos al ejemplo concreto:

Yo he creado una base de datos llamada Google, y en ella he hecho una tabla con la siguiente estructura:


use google

go
Create Table fotos
(
id_foto int primary key,
foto varbinary(max) not null
)

Aora bien, luego de crear la conexión tenemos algo como esto:

DriverManager.registerDriver(new com.microsoft.sqlserver.jdbc.SQLServerDriver());
Connection connection = DriverManager.getConnection("jdbc:sqlserver://localhost:1433;databaseName=Google", "sa", "adminadmin");

Creamos la consulta:

File file = new File("ayuda.png");

Cargamos el archivo a la aplicación:

PreparedStatement ps = connection.prepareStatement("insert into fotos(id_foto, foto) values (1, ?)");

Creamos un flujo para leerlo, y asi sacar los bytes:

FileInputStream fis = new FileInputStream(file);

Asignamos a la consulta el flujo de bytes que corresponden a la imagen cargada:

ps.setBinaryStream(1, fis, (int) file.length());

Y por último se ejecuta la consulta:

ps.executeUpdate();
connection.commit();

Aca dejo las fuentes del proyecto:

  1. manix
    ene 23rd, 2010 at 20:57 | #1

    creo que quedo completo

  2. ye
    nov 15th, 2010 at 15:35 | #2

    holas bueno la verdad lo que yo queria saver es como puedo combertir una foto en caractter binario para luego almacenar en una tabla gracias =) bey

  3. jul 11th, 2011 at 17:33 | #3

    jonathan-palomino.blogspot.com es mi blog tambien tengo ejemplos de Sql server con java

Leave a comment

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>