How to apply a setNull(index,Types.Blob)?

Asked

Viewed 37 times

2

How can I enter null in the database if an image is not loaded?

FileInputStream cabecalho = null;
conn.setAutoCommit(false);
File fileLogotipo = new File(imagemCabecalho); //imagemCabecalho = path
cabecalho = new FileInputStream(fileCabecalho);

if (imagemCabecalho.equals("") || imagemCabecalho == null) {
                ps.setNull(2, Types.BLOB);
            } else {
                 ps.setBinaryStream(2, cabecalho, (int) fileCabecalho.length());
            }

This is not working for me, what should I put in the 'if' condition to set null ?

Updating:

Give me that mistake:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
    at java.io.File.<init>(File.java:277)
    at faturacao.ConfEmpresa.jButtonRegistarActionPerformed(ConfEmpresa.java:3126)
    at faturacao.ConfEmpresa.access$6300(ConfEmpresa.java:46)
    at faturacao.ConfEmpresa$62.actionPerformed(ConfEmpresa.java:1751)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
    at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
    at java.awt.Component.processMouseEvent(Component.java:6525)
    at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
    at java.awt.Component.processEvent(Component.java:6290)
    at java.awt.Container.processEvent(Container.java:2234)
    at java.awt.Component.dispatchEventImpl(Component.java:4881)
    at java.awt.Container.dispatchEventImpl(Container.java:2292)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
    at java.awt.Container.dispatchEventImpl(Container.java:2278)
    at java.awt.Window.dispatchEventImpl(Window.java:2739)
    at java.awt.Component.dispatchEvent(Component.java:4703)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
    at java.awt.EventQueue.access$400(EventQueue.java:97)
    at java.awt.EventQueue$3.run(EventQueue.java:697)
    at java.awt.EventQueue$3.run(EventQueue.java:691)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
    at java.awt.EventQueue$4.run(EventQueue.java:719)
    at java.awt.EventQueue$4.run(EventQueue.java:717)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

1 answer

2

From what I understand, imagemCabecalho is the path to a file. Therefore, the code may not work because you have a path, but the file does not exist.

It would be interesting to check this, perhaps as follows:

if (imagemCabecalho == null || imagemCabecalho.length == 0 || !new File(imagemCabecalho).exists()) {
    ps.setNull(2, Types.BLOB);
} else {
    FileInputStream cabecalho = new FileInputStream(fileCabecalho);
    ps.setBinaryStream(2, cabecalho, (int) new File(imagemCabecalho).length());
}
  • I tried to add this ! new File(picturemCabecalho). exists()) but gives error :S I’ll put the bug on top. I appreciate the help already

  • @Hugomachado I copied your example and did not notice that I was testing .equals and then == null. It can’t be like that, the comparison with null must always come first. See my new example that should fix this.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.