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:
creo que quedo completo
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
jonathan-palomino.blogspot.com es mi blog tambien tengo ejemplos de Sql server con java