java com banco de dados
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){
}
}
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
Curtidas 0
Respostas
Davi Costa
24/05/2011
É 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
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
GOSTEI 0
Davi Costa
24/05/2011
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
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
GOSTEI 0
Lu
24/05/2011
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");
}
}
}
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");
}
}
}
GOSTEI 0
Lu
24/05/2011
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
GOSTEI 0
Davi Costa
24/05/2011
Posta o erro, para vermos o que pode ser feito nesse select.
Agora já sabemos que é problema de banco.
Att Davi
Agora já sabemos que é problema de banco.
Att Davi
GOSTEI 0
Lu
24/05/2011
esse ai em relação ao banco
java.lang.NullPointerException
at sgempresarial.FormularioCliente.<init>(FormularioCliente.java:35)
java.lang.NullPointerException
at sgempresarial.FormularioCliente.<init>(FormularioCliente.java:35)
GOSTEI 0
Lu
24/05/2011
clienteConexao.executeSQL("select*from Cliente");
GOSTEI 0
Lu
24/05/2011
public class FormularioPrincipal extends javax.swing.JFrame {
ArrayList listaCliente = RepositorioCliente.obterInstancia().listarTodos();
erro at sgempresarial.FormularioPrincipal.access$000(FormularioPrincipal.java:20)
erro at sgempresarial.FormularioPrincipal.access$000(FormularioPrincipal.java:20)
GOSTEI 0
Davi Costa
24/05/2011
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
Seria interessante vc copiar o statckTrace inteiro, para que peguemos tb o causedBy, e vermos qual erro de sql.
Att Davi
GOSTEI 0
Dyego Carmo
24/05/2011
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
Http://www.devmedia.com.br/dyego
GOSTEI 0
Lu
24/05/2011
okirei olhar sim
GOSTEI 0