Erro prepareStatement

Pessoal tenho a seguinte classe para conexao:

[code]public class Conexao{
private Connection conexao;
public Conexao(){
try{
Class.forName(“org.firebirdsql.jdbc.FBDriver”);
conexao = DriverManager.getConnection(“jdbc:firebirdsql:localhost/3050:D:\Sistemas\Gestor\bd\GESTORBD”, “GESTOR”, “msolutec0702”);
}catch ( Exception e ) {
String erro = e.getMessage();
}
}

public Connection getConexao(){
return conexao;
}

}[/code]

e o seguinte DAO:

1 /* 2 * EmpresaDao.java 3 * 4 * Created on 22 de Abril de 2005, 13:33 5 */ 6 7 package br.com.solutec.gestor.dao.empresa; 8 9 import br.com.solutec.gestor.dao.comum.Conexao; 10 import br.com.solutec.gestor.dao.comum.Id; 11 import br.com.solutec.gestor.model.empresa.Empresa; 12 import java.sql.Connection; 13 import java.sql.PreparedStatement; 14 import java.sql.ResultSet; 15 import java.sql.Statement; 16 import java.util.ArrayList; 17 import java.util.List; 18 19 /** 20 * 21 * @author Rodrigo Rocha 22 */ 23 public class EmpresaDao { 24 private static Conexao cx = new Conexao(); 25 private static Connection conexao = cx.getConexao(); 26 /** Creates a new instance of EmpresaDao */ 27 public EmpresaDao() { 28 } 29 30 public Integer gerarId() throws Exception { 31 Id id = new Id(); 32 return id.gerarId("tbEmpresa", "idEmpresa"); 33 } 34 35 public void cadastrar(Empresa em) throws Exception { 36 37 if( em == null ) return; 38 //Statement st = conexao.createStatement(); 39 PreparedStatement ps = null; 40 try { 41 String sql = "INSERT INTO tbEmpresa ( idEmpresa, rzsocial, apelido, dtVencimento) VALUES (?,?,?,?)"; 42 ps = conexao.prepareStatement(sql); 43 ps.setInt(1, em.getIdEmpresa().intValue()); 44 ps.setString(2, em.getRzSocial()); 45 ps.setString(3, em.getApelido()); 46 ps.setString(4, em.getDtVencimento()); 47 ps.execute(); 48 } finally { 49 if(ps!=null) try {ps.close(); } catch( Exception e ) {} 50 if(ps!=null) try {conexao.close(); } catch( Exception e ) {} 51 } 52 } 53 54 }

Qdo tento executar me apresenta uma exceção:

java.lang.NullPointerException testeEventos at br.com.solutec.gestor.dao.empresa.EmpresaDao.cadastrar(EmpresaDao.java:42) at br.com.solutec.gestor.negocio.empresa.NegocioEmpresa.Salvar(NegocioEmpresa.java:26) at br.com.solutec.gestor.gui.controle.empresa.EventosEmpresaButtons.salvar(EventosEmpresaButtons.java:35) at br.com.solutec.gestor.gui.components.StoolBar.btSalvarClick(StoolBar.java:126) at br.com.solutec.gestor.gui.components.StoolBar.access$100(StoolBar.java:13) at br.com.solutec.gestor.gui.components.StoolBar$2.actionPerformed(StoolBar.java:56) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786) at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245) at java.awt.Component.processMouseEvent(Component.java:5100) at java.awt.Component.processEvent(Component.java:4897) at java.awt.Container.processEvent(Container.java:1569) at java.awt.Component.dispatchEventImpl(Component.java:3615) at java.awt.Container.dispatchEventImpl(Container.java:1627) at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128) at java.awt.Container.dispatchEventImpl(Container.java:1613) at java.awt.Window.dispatchEventImpl(Window.java:1606) Falha Negocio!!! at java.awt.Component.dispatchEvent(Component.java:3477) at java.awt.EventQueue.dispatchEvent(EventQueue.java:456) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137) at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

at br.com.solutec.gestor.dao.empresa.EmpresaDao.cadastrar(EmpresaDao.java:42)

provavelmente sua conexão ta nula.
de uma olhada nisso, teste o valor da conexão antes de usa-la, so p/ ver.

[]'s

Cara era realmente isso eu não tinha setado o driver do firebird na minha aplicação:

Só q agora me aprece o seguinte erro:

testeEventos
org.firebirdsql.jdbc.FBSQLException: GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -204
Table unknown
TBEMPRESA
At line 1, column 13.
at org.firebirdsql.jdbc.AbstractPreparedStatement.<init>(AbstractPreparedStatement.java:91)
at org.firebirdsql.jdbc.FBPreparedStatement.<init>(FBPreparedStatement.java:34)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:682)
at org.firebirdsql.jdbc.AbstractConnection.prepareStatement(AbstractConnection.java:232)
at br.com.solutec.gestor.dao.empresa.EmpresaDao.cadastrar(EmpresaDao.java:41)
at br.com.solutec.gestor.negocio.empresa.NegocioEmpresa.Salvar(NegocioEmpresa.java:26)

Já verifiquei o nome da minha tabela é realmente tbEmpresa

fiz o teste com outra tabela o mesmo erro ele não encontra a tabela

primeiro: verifique se seu usuario tem permissão para acessar esses objetos do banco.
segundo: tenha certeza que que o nome databela é esse mesmo. tipo o padrão em bd’s é usar underscore. sera que não é TB_EMPRESA?

[]'s

já fiz o teste de usuario e ok

e o nome da tabela é tbEmpresa mesmo.

Eu tb trofquei o método cadastrar por este:

[code]public void cadastrar(Empresa em) throws Exception {
try {
Statement st = conexao.createStatement();
String sql;

        sql = " INSERT INTO TBEMPRESA (IDEMPRESA, RZSOCIAL, APELIDO, DTVENCIMENTO) VALUES ("+em.getIdEmpresa().intValue() + "','"+ em.getRzSocial() + "', 

‘"+ em.getApelido() + "’, ‘"+ em.getDtVencimento() +"’) ";
st.executeUpdate(sql);
st.close();
}
catch ( Exception e ){
System.out.println(e.getMessage());
}

}[/code]

Dai o erro foi esse:

GDS Exception. 335544569. Dynamic SQL Error
SQL error code = -104
Unexpected end of command

nunca usei firebird, mas não pode ser problema de maiusculas/minusculas?

[]'s

já tentei tanto de um jeito como de outro

Table unknown TBEMPRESA

Você disse tbEmpresa, nao seria apenas o “tb” em minúsculo?

Segue meu código novamente:

[code]public void cadastrar(Empresa em) throws Exception {

    if( em == null ) return;
    PreparedStatement ps = null;
    try {
        String sql = "INSERT INTO tbEmpresa (idEmpresa, rzsocial, apelido, dtVencimento) VALUES (?,?,?,?)";
        ps = conexao.prepareStatement(sql);
        ps.setInt(1, em.getIdEmpresa().intValue());
        ps.setString(2, em.getRzSocial());
        ps.setString(3, em.getApelido());
        ps.setString(4, em.getDtVencimento());
        ps.execute();
    } finally {
        if(ps!=null) try {ps.close(); } catch( Exception e ) {}
        if(ps!=null) try {conexao.close(); } catch( Exception e ) {}
    }
}[/code]

Como vcs podem ver estou colando em minisculo no stack q aparece em maiusculo não sei pq

Um detalhe: voce deve usar

ps.executeUpdate();

e nao ps.execute() para insert / update /delete

Rafael

blz… mas não resolve o problema vc tem alguma dica!!!

O Java parece legal, tudo indica um problema com o SQL. Você tentou passar o schema em que essa tabela foi criada? Tipo “INSERT into MEUSCHEMA.TBEMPRESA…”