try
{
File f = new File("C:\\Users\\R\\Desktop\\pasta1");
File[] arquivos = f.listFiles(); //retorna um array de Files
String[] nomes = f.list(); //retorna o nome dos arquivos em Strings
//for(File f : arquivos){
//enjoy't
//}
for(String s : nomes)
{
JOptionPane.showMessageDialog(null,""+s);
sz = s.toString();
String sqlinsert ="insert into cad_nomes (no_nome) values ('"+
sz.toString()+"')";
imagens.statement.executeUpdate(sqlinsert);
imagens.executeSQL("select * from cad_nomes");
imagens.resultset.first();
}
}
catch(SQLException erro)
{
JOptionPane.showMessageDialog(null,"XC:"+erro);
}
}
Gravar nome dos arquivos no Banco[Resolvido]
11 Respostas
Olá,
zs não foi tipada
sz = s.toString();
Perguntas:
Qual erro está dando?
De qual tipo é o obvjeto imagens.
Se puder coloca o código completo.
Abs
estou pegando o nome dos arquivos de um determinado diretório e tentando gravar esses nomes no banco de dados mais da o sequinte erro .:
error.: Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
No código postado tem algumas considerações a fazer:
- você não declara a variável sz
- Se sz é s.toString (linha 15), porque na linha 17 você faz o insert do sz.tostring ? Não seria somente o sz?
- Em vez de tentar gravar no banco de dados, manda printar na tela o conteúdo da variável sz, para ver se é realmente o que você quer.
- O programa dá algum erro? Entra no catch (SQLException)? Ou só não grava?
- você não declara a variável sz
R.: ja declarado no inicio.: public static String sz; - Se sz é s.toString (linha 15), porque na linha 17 você faz o insert do sz.tostring ? Não seria somente o sz?
R.:sim mais teria que gravar mesmo assim - Em vez de tentar gravar no banco de dados, manda printar na tela o conteúdo da variável sz, para ver se é realmente o que você quer.
R.: ja mandei e aparece o nome corredo do arquivo - O programa dá algum erro? Entra no catch (SQLException)? Ou só não grava?
R.:ele apenas não grava não da erro na tela nada nada
o erro aparece no run single Erro .:Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
String sql = "insert into cad_nomes (cad_no_nome) values (?)";
// prepared statement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
// seta os valores (onde tá o ? vai pra sz)
stmt.setString(1, sz);
// executa e facha
stmt.execute();
stmt.close();
Exception in thread “AWT-EventQueue-0” java.lang.NullPointerException
at Funções.CadastraImagens.Grava(CadastraImagens.java:72)
at Telas.Funcionário.jButton2ActionPerformed(Funcionário.java:988)
at Telas.Funcionário.access$1500(Funcionário.java:23)
at Telas.Funcionário$16.actionPerformed(Funcionário.java:341)
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:6038)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
at java.awt.Component.processEvent(Component.java:5803)
at java.awt.Container.processEvent(Container.java:2058)
at java.awt.Component.dispatchEventImpl(Component.java:4410)
at java.awt.Container.dispatchEventImpl(Container.java:2116)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
at java.awt.Container.dispatchEventImpl(Container.java:2102)
at java.awt.Window.dispatchEventImpl(Window.java:2429)
at java.awt.Component.dispatchEvent(Component.java:4240)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
Experimenta colocar seu código assim. Desculpe minha falta de conhecimento, mas nunca fiz desta forma que você fez.
Espero ter ajudado
PreparedStatement ps = null;
try {
String sql = "INSERT INTO ... VALUES (?)";
ps = conexao.prepareStatement(sql);
ps.setString(1, sz[...]);
ps.executeUpdate();
ps.close();
} catch (RuntimeException ex) {
throw new Exception(ex.getMessage());
} catch (SQLException ex) {
throw new Exception(ex.getMessage());
} catch (Exception ex) {
throw new Exception(ex.getMessage());
}
String sql = "insert into cad_nomes (cad_no_nome) values (?)";
// prepared statement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
// seta os valores (onde tá o ? vai pra sz)
stmt.setString(1, sz);
// executa e facha
stmt.execute();
stmt.close();
Se pá vai precisar de uns try catch ou throw...
Mudei para um campo de text Jtextfield ele funciona só que é pra ele pegar o arquivo direto da variavel .sera que pode ser por ter vários arquivos o ñ?
String sqlinsert ="insert into into cad_nomes (cad_no_nome) values ('"+
tf_nome.getText()+"')";
A ja entedi o erro tava no static
public static String rs;
e o métido
public static void Grava()
Como são varios arquivos ele não pode ser static.
Vlw!
blz progJava.
Altera o titulo caso o problema estiver resolvido [RESOLVIDO].
Abs