Olá pessoal…
Eu criei um metodo para salvar uma imagem na base, pois estou realizando uma aplicação e necessito muito disto funcionando, porém ocorre alguns erros e estou usando o banco postgres sql.
Irei por partes
No postgres eu criei a sequinte tabela
CREATE TABLE anexo
(
id int4 NOT NULL,
filename varchar(100),
content oid,
CONSTRAINT anexo_pkey PRIMARY KEY (id)
)
e o meu metodo irá fazer o seguinte comando para salvar na base
try
{
FileInputStream fio;
fio = new FileInputStream(new File(caminho).getAbsolutePath());
//Cria a conexão com o BD
ConnectionManager.setConnectionUrl("jdbc:postgresql://localhost:5432/homologacao");
ConnectionManager.setJdbcDriverClass("org.postgresql.Driver");
cm.setUserName("usuar");
cm.setPassword("pass");
conn = cm.retornaConexao();
//Faz select
String sql = "insert into anexo values (?,?,?)";
System.out.println("insert into anexo values ("+cod+",'"+nome+"',"+fio.available()+")");
ps = conn.prepareStatement(sql);
ps.setInt(1, cod);
ps.setString(2, nome);
ps.setBinaryStream(3, fio, (int)fio.available());
System.out.println("EXECUTOU: "+ps.executeUpdate());
ps.close();
fio.close();
System.out.println("File saved!");
}
catch (Exception e)
{
e.printStackTrace(System.out);
}
porém ocorre o seguinte erro…
…CONFIG…
DRIVER org.postgresql.Driver
URL jdbc:postgresql://localhost:5432/homologacao
USUARIO: usuar
PASSWORD pass
CONFIG.GERAL: org.postgresql.Driver jdbc:postgresql://localhost:5432/homologacao usuar pass
insert into anexo values (1,‘TESTE IMAGEM’,32818)
org.postgresql.util.PSQLException: ERROR: column “content” is of type oid but expression is of type bytea
OBS: Estive pesquisando em forum esta ajuda e sei que muitos irão postar que eu devo salvar em disco ou subdiretorios do projeto, porém estou com ducidas nesta questão acima e se possivel algum puder me ajudar eu agradeço…
E além disso gostaria de sabar como eu posso estar resgatando esta imagem para que eu possa estar exibindo a mesma numa pagina em .jsp por exempo…
Muito obrigado