Olá pessoal,
Eu sei que isso deve ser meio batido… Mas já procurei no google, no fórum e não consigo achar o problema…
Estou querendo inserir imagens a partir de uma aplicação desktop no banco de dados PostgreSQL…
Eu gostaria que me dissessem qual o tipo do campo que eu devo criar no PostgreSQL…
Jà tentei lo, bytea e oid mesmo sem saber ao certo o que é cada um… Mas em nenhum deu certo…
Meu método está assim:
public void addCasca(Casca casca) throws Exception {
PreparedStatement pstmt = null;
String sql;
FileInputStream fis;
try {
File f = new File((String) casca.getFotoCasca());
fis = new FileInputStream(f);
sql = "INSERT INTO CASCA (caracteristica, desenvolvimento, nome_casca, foto_casca)" +
"VALUES (?,?,?,?)";
pstmt = super.getConexao().prepareStatement(sql);
pstmt.setString(1, casca.getCaracteristica());
pstmt.setString(2, casca.getDesenvolvimento());
pstmt.setString(3, casca.getNomeCasca());
pstmt.setBinaryStream(4, fis, fis.available());
pstmt.executeUpdate();
} finally {
if (pstmt != null) {
pstmt.close();
}
}
}
Entre os tres tipos de campo, apenas com o bytea não gera excessão mas o campo fica em branco quando eu dou um select…
Nos outros dois que citei, geram as seguintes excessões:
“column “foto_casca” is of type lo but expression is of type bytea” e “column “foto_casca” is of type oid but expression is of type bytea”
Se alguém puder me ajudar, por favor me diga qual o campo que deve ser declarado no PostgreSQL e apontar o erro se houver algum no código apresentado…
Agradeço desde já,
DanielSR