Fórum java com banco de dados #401603

24/05/2011

0

oi gostaria de ajuda com esse codigo. to tentado abri o form de cadastro cliente
so qndo tento abrilo ñ abre d maneira nenhuma, nem da erro algum, por favor se puder me ajudar agradeço

 public FormularioCliente() {
         initComponents();
        
   
        clienteConexao.executeSQL("select*from Cliente");
   
    try{ //tratamento de erros

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//Seleciona o Driver do Banco

            //conecta no BD

            Connection con=DriverManager.getConnection("jdbc:odbc:sgempresarial","","");
            Statement stmt= (Statement) con.createStatement();//objeto comdo sql

 
        } catch(SQLException e){ //trata os erros

    
        } catch(ClassNotFoundException e){      

    

            }
   
   
    }
Lu

Lu

Responder

Posts

24/05/2011

Davi Costa

É uma app desktop não é?

Aparentemente, temos que quebrar por partes, não parece ser problemas de banco que impede o form abrir remove a parte jdbc e testa para ver se o form abri, pq se abrir, teremos certeza que é alguma exceção do jdbc  (algum nulpointer.. algo assim) e daí veremos os possíveis tratamentos.

Aconselho a postar o código do form tb.

Mais uma coisa o erro não aperece pq vc está mascarando, que tal colocar pelo um printStackTrace no console mesmo:

 public FormularioCliente() {
         initComponents();
        
   
        clienteConexao.executeSQL("select*from Cliente");
   
    try{ //tratamento de erros

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//Seleciona o Driver do Banco

            //conecta no BD

            Connection con=DriverManager.getConnection("jdbc:odbc:sgempresarial","","");
            Statement stmt= (Statement) con.createStatement();//objeto comdo sql

 
        } catch(SQLException e){ //trata os erros
             e.printStackTrace();
    
        } catch(ClassNotFoundException e){      

              e.printStackTrace();

            }
   
   
    }

att Davi
Responder

Gostei + 0

24/05/2011

Davi Costa

Para tb saber mos qual realmente o erro que está acontecendo, podemos até fazer assim (só para testar depois vc refatora e coloca os try/catch onde o código exigir):

public FormularioCliente() {
        try{ //tratamento de erros
         initComponents();
        
   
        clienteConexao.executeSQL("select*from Cliente");
   
   

        Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");//Seleciona o Driver do Banco

            //conecta no BD

            Connection con=DriverManager.getConnection("jdbc:odbc:sgempresarial","","");
            Statement stmt= (Statement) con.createStatement();//objeto comdo sql

 
        } catch(SQLException e){ //trata os erros
             e.printStackTrace();
    
        } catch(ClassNotFoundException exp){      

              exp.printStackTrace();

            } catch(Exception ex){      

              ex.printStackTrace();

            }
   
   
    }

Att Davi
Responder

Gostei + 0

24/05/2011

Lu

agora apareceu os erros entre eles um erro no comando sql

o codigo d conexao q stou usando é esse

public class ConexaoOdbc
 {
    final private String driver = "sun.jdbc.odbc.jdbcOdbcDriver";
    final private String url = "jdbc:odbc:sgempresarial";
    final private String usuario = "";
    final private String senha = "";
    private Connection ConexaoOdbc;
    public Statement statement;
    public ResultSet resultset;
   
   public boolean conecta()
   {
       boolean result = true;
       try {
           Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
           ConexaoOdbc = DriverManager.getConnection(url, usuario, senha);
         JOptionPane.showMessageDialog(null,"Conectou"); 
       } catch (ClassNotFoundException Driver) {
           JOptionPane.showMessageDialog(null, "Driver não localizado");
            result = false;
      }
       catch(SQLException Fonte)
       {
          JOptionPane.showMessageDialog(null, "Deu erro na conexão com a fonte de dados");
           result = false;
       }
      return result;
      
       }    
   public void desconecta()
   {
        boolean result = true;
      try {
          ConexaoOdbc.close();
        JOptionPane.showMessageDialog(null, "banco fechado");          
      } catch (SQLException fecha) {
         JOptionPane.showMessageDialog(null,"Não foi possivel fechar o banco de dados:");
       result = false;  
      }
   }  
public void executeSQL(String sql)
{
      try {
          statement = ConexaoOdbc.createStatement();
         resultset = statement.executeQuery(sql);
       
   } catch (SQLException sqlex) {
      JOptionPane.showMessageDialog(null, "Não foi possivel executar o comando sql passado foi");
  
   }
}
}
Responder

Gostei + 0

24/05/2011

Lu

mostra a mensagem d erro no comando sql + tabem sta mostrando q o cliente foi salvo com sucesso, so que não salva no banco
Responder

Gostei + 0

25/05/2011

Davi Costa

Posta o erro, para vermos o que pode ser feito nesse select.
Agora já sabemos que é problema de banco.


Att Davi
Responder

Gostei + 0

25/05/2011

Lu

esse ai em relação ao banco

java.lang.NullPointerException
    at sgempresarial.FormularioCliente.<init>(FormularioCliente.java:35)


Responder

Gostei + 0

25/05/2011

Lu

  clienteConexao.executeSQL("select*from Cliente");
Responder

Gostei + 0

25/05/2011

Lu

public class FormularioPrincipal extends javax.swing.JFrame { ArrayList listaCliente = RepositorioCliente.obterInstancia().listarTodos();

erro at sgempresarial.FormularioPrincipal.access$000(FormularioPrincipal.java:20)
Responder

Gostei + 0

25/05/2011

Davi Costa

Que linha de código é essa FormularioCliente.java:35.

Seria interessante vc copiar o statckTrace inteiro, para que peguemos tb o causedBy, e vermos qual erro de sql.

Att Davi
Responder

Gostei + 0

25/05/2011

Dyego Carmo

Em meu devspace tem varias aulas ensinando como trabalhar com JDBC direto e tambem utilizado JPA , não quer dar uma olhadinha ?

Http://www.devmedia.com.br/dyego
Responder

Gostei + 0

25/05/2011

Lu

okirei olhar sim
Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar