Gravar imgem em campo blob no mysql

9 respostas
DAREK6920

Considerando-se o codigo:

byte ab[] = imageToByte(iconToImage(clientes1.figura.getIcon()));
      
String seletor = "update cadastroempresa set LOGO = " + ab +  " where codigo = " + variaveis.codigoempresa;

Porque estou obtendo este erro :

GRAVE: null
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[B@18bbf55 where codigo = 01' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
at com.mysql.jdbc.Util.getInstance(Util.java:382)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1052)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2570)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:779)
at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:622)
at ta01.funcoes.atualizacli(funcoes.java:426)
at ta01.clientes1.jButton2ActionPerformed(clientes1.java:901)
at ta01.clientes1.access$3900(clientes1.java:45)
at ta01.clientes1$39.actionPerformed(clientes1.java:823)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6288)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
at java.awt.Component.processEvent(Component.java:6053)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4651)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4577)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2478)
at java.awt.Component.dispatchEvent(Component.java:4481)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:643)
at java.awt.EventQueue.access$000(EventQueue.java:84)
at java.awt.EventQueue$1.run(EventQueue.java:602)
at java.awt.EventQueue$1.run(EventQueue.java:600)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
at java.awt.EventQueue$2.run(EventQueue.java:616)
at java.awt.EventQueue$2.run(EventQueue.java:614)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:613)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)

9 Respostas

drsmachado

Camarada, só me responde uma coisa, o que o erro do mysql tem a ver com java avançado?

Existe um fórum específico de Persistência, banco de dados, etc…

DAREK6920

“Camarada”, penso que talvez não tenha nada a ver para você que deve ser um expert daqueles que resolve problemas até dormindo. Como sou um simples programador iniciante em Java e um misero ser humano e não um deus, achei que tivesse algo a ver. Mas valeu, vou postar o no lugar certo, talvez algum outro ignorante como eu consiga me responder.

FernandoFranzini

Seu SQL esta com erro de sintaxe…não é problema de Java.
Valide seu SQL em um MySqlManager antes de usar no JDBC.

drsmachado

Não tem nada a ver com o conhecimento que se tem em java. Lendo a descrição do fórum você conseguiria, mesmo sem saber nada de qualquer linguagem, postar no fórum correto.
Além do mais, fiz uma pergunta, se isto o ofende, minhas sinceras desculpas.

DAREK6920

Peço desculpas se lhe pareci ofensivo, mas não foi a pergunta que realmente me desagradou, mas a forma como foi feita. Me pareceria mais simples indicar apenas o erro que cometi colocando no post errado. De qualquer forma lhe peço mesmo sinceras desculpas por minha grosseria, mas o problema esta mesmo mexendo com meus nervos.

drsmachado

Tranquilo.
A dica é seguir o que o FernandoFranzini disse.

DAREK6920

Uso o Workbench e só pra voce fazer ideia, não sei como testar esta sintaxe nele. Por exemplo, as queries simples tudo bem, consigo testar, mas como vou fazer para inserir o array da figura para testar ? Se puder me ajudar com um exemplo de sintaxe, ficarei imensamente grato.

DAREK6920

A proposito sei que todo mundo fala para não guardar as imagens no banco de dados, guardar apenas o caminho, mas o problema é que se eu quiser instalar em outra maquina vou precisar mover um diretorio inteiro e isto não ficaria muito legal. Por isto, claro que o numero de imagens é limitado, prefiro a solução de guarda-las no banco de dados.

FernandoFranzini

Tudo na vida tem pontos positivos e negativos.
Se vc esta preparado para lhe da com o pontos negativos da sua escolha…OK !
Eu tenho projetos grandes, gravando muitos arquivos e imagens em diretórios e não tive problemas…e para mim é muito legal sim… kkkkkk

Criado 3 de junho de 2011
Ultima resposta 3 de jun. de 2011
Respostas 9
Participantes 3