Ola galera
Existe outra maneira de gravar imagem no banco MySQL?
Eu conheço esse e funciona direitinho
[code]public void addImagemComponente(int cod, File image, FileInputStream fis){
String sql = "INSERT INTO imagemComponente VALUES(?,?)";
try{
Connection conn = ConnectionDB.getConnection();
PreparedStatement pstm = (PreparedStatement) conn.prepareStatement(sql);
pstm.setInt(1, cod);
pstm.setBinaryStream(2, fis, (int) image.length());
pstm.execute();
}catch(Exception e){
e.printStackTrace();
}
}[/code]
O problema desse jeito é q pra eu gravar a imagem “diminuida” no banco eu preciso gravar essa copia da imagem no disco rígido e depois pegar o endereço dessa nova imagem e criar um objeto File
E para recuperar tem a mesma historia precisa gravar no HD e depois recuperar a imagem
conheço essa maneira
[code]public BufferedImage capturaImagem(int cod) throws IOException{
File image = null;
Blob blob = null;
InputStream bin = null;
FileOutputStream bout = null;
byte[] bbuf = new byte[1024];
int bytesRead = 0;
String sql = "SELECT imagem FROM imagemComponente WHERE codComponente = "+ cod;
try{
Connection conn = ConnectionDB.getConnection();
Statement stm = conn.createStatement();
ResultSet rset = stm.executeQuery(sql);
while(rset.next()){
blob = rset.getBlob("imagem");
bin = blob.getBinaryStream();
bout = new FileOutputStream("teste.jpg");
while ((bytesRead = bin.read(bbuf)) != -1) {
bout.write(bbuf, 0, bytesRead);
}
}
}catch(Exception e){
e.printStackTrace();
}
image = new File("teste.jpg");
BufferedImage bi = ImageIO.read(image);
return bi;
}[/code]
Como da pra ver no código acima eu retiro a imagem do banco e gravo no HD e soh depois eu crio um BufferedImage com a imagem retirada do banco, existe uma maneira de eu ter um BufferedImage da imagem retirada do banco mas sem gravar esse imagem na HD?
Atenciosamente