Como armazenar/recuperar imagens para/do SQL Server

Veja nesta dica como armazenar e recuperar os dados de uma imagem no SQL Server.

Como armazenar/recuperar imagens para/do SQL Server

O jTDS é um driver JDBC 3.0 de código aberto para o Microsoft SQL Server (6.5, 7, 2000 e 2005). O pacote java.sql junto com o driver acima ajuda em armazenar dados binários na base de dados do Microsoft SQL Server.

O exemplo abaixo mostra como armazenar e recuperar os dados de uma imagem no SQL Server.

import java.sql.*;
import java.io.*;

public class saveImage 
{
public static void main(String[] args) 
{
DB db = new DB();
Connection conn=db.dbConnect(
"jdbc:jtds:sqlserver://localhost:1433/test","sa","");
db.insertImage(conn,"d://filepath//test.JPG");
db.getImageData(conn);
}

}

class DB
{
public DB() {}

public Connection dbConnect(String db_connect_string,
String db_userid, String db_password)
{
try
{
Class.forName("net.sourceforge.jtds.jdbc.Driver");
Connection conn = DriverManager.getConnection(
db_connect_string, db_userid, db_password);

System.out.println("conectado");
return conn;

}
catch (Exception e)
{
e.printStackTrace();
return null;
}
}

public void insertImage(Connection conn,String img)
{
int len;
String query;
PreparedStatement pstmt;

try
{
File file = new File(img);
FileInputStream fis = new FileInputStream(file);
len = (int)file.length();

query = ("insert into TableImage VALUES(?,?,?)");
pstmt = conn.prepareStatement(query);
pstmt.setString(1,file.getName());
pstmt.setInt(2, len);
  
//Método usado para inserir uma stream de bytes
pstmt.setBinaryStream(3, fis, len); 
pstmt.executeUpdate();

}
catch (Exception e)
{
e.printStackTrace();
}
}

public void getImageData(Connection conn)
{

byte[] fileBytes;
String query;
try
{
query = "select data from tableimage";
Statement state = conn.createStatement();
ResultSet rs = state.executeQuery(query);
if (rs.next())
{
fileBytes = rs.getBytes(1);
OutputStream targetFile=  
new FileOutputStream("d://filepath//new.JPG");

targetFile.write(fileBytes);
targetFile.close();
}        

}
catch (Exception e)
{
e.printStackTrace();
}
}
};

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados