ola preciso desenvolver uma aplicação em java fazendo tratamento de imagens so que não tenho muita experiencia com java e pra fim de curso ,o caso é que estou tentando recuperar imagens armazenadas no banco e visualizar em JFrame quando solicitada junto com as informações do usuario,so que não to conseguindo?? Ajuda por favor urgente ja pesquisei e tentei de tudo…???
O link abaixo mostra um código pronto para armazenar e recuperar imagens no SQL SERVER
http://www.devmedia.com.br/post-1994-Como-armazenar-recuperar-imagens-para-do-SQL-Server.html
ok , obrigado,agora me tira outra dúvida em java qual o tipo de dados pra imagem em sql armazena no banco como um tipo blob mas e em java na classe qual seria o ideal …seria byte ???
Olá Anna,
Peço desculpas, mas não entendi exatamente sua pergunta.
Pelo que entendi já existe um BD com um campo tipo blob para as imagens. Voce só não sabe como fazer a integração com java, é isso?
Voce pode usar as classes FileImageOutputStream e BufferedImage.
Veja mais um link http://www.guj.com.br/java/54493-transformar-array-de-bytes-em-imagem onde existe uma forma de converter os bytes do banco para um array de bytes java.
ola de novo vc ja ouviu da API Jai do java que trabalha com imagens tbm estou dando uma estudada sobre pra ver se consigo agilizar pois meu trabalho ta acabando o prazo…se puder me ajudar agradeço desde ja…
package teste;
import java.sql.*;
import java.io.*;
public class SaveImagem
{
public static void main(String[] args)
{
DB db = new DB();
Connection conn=db.dbConnect(
"com.mysql.jdbc.Driver://localhost:3306/test","root"," ");
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("com.mysql.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();
}
}
};
codigo q estou usando pra recuperar imagens no banco de dados stou tentando no mysql e testei no postgree,porem sta dando erro!?
é imagens, no banco, eu salvo o nome do caminho da imagem, e aí na hora de mostrar a imagem, chama pelo nome do arquivo, onde ele está.
isto eu fiz muito em php.