Erro de programação em camadas

10 respostas
I

Estou novamente com um problema.
Estou começando a programar em camadas, o projeto compila normalmente masnão inclui nada no BD.
Alguma coisa passou pelos meus olhos e não estou conseguindo identificar.

Segue os codigos do projeto!!

package agendatelefonica; 

import java.sql.Connection; 
import java.sql.DriverManager; 
import java.sql.SQLException; 

public class Conexao{ 
    private final String URL = "jdbc:odbc:banco"; 
    private final String USR = ""; 
    private final String PSW = ""; 
    private Connection con; 

 public Conexao(String driver){ 
    try{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    con = DriverManager.getConnection(URL,USR,PSW); 
     } 
    catch(ClassNotFoundException cEx){cEx.printStackTrace();} 
    catch(SQLException cExcpt) {cExcpt.printStackTrace();} 
} 
public Connection getConn(){ 
 return con; 
} 
}
package agendatelefonica; 

import java.sql.*; 

public class Membros{ 

private String SQLMEMBRO ="insert into agenda(nome, telefone, aniversario) values(?,?,?)"; 
private String nome, telefone, aniversario; 

   public Membros(){ 
      } 

   public String getNome(){ 
   return nome; 
      } 

   public String getTelefone(){ 
   return telefone; 
      } 

   public String getAniversario(){ 
     return aniversario; 
       } 


    public void setNome(String nome) { 
      this.nome = nome; 
        } 

    public void setTelefone(String telefone){ 
      this.telefone = telefone; 
      } 

      public void setAniversario(String aniversario){ 
        this.aniversario = aniversario; 
        } 

        public String getSQLMEMBRO(){ 
        return SQLMEMBRO; 
        } 

}
package agendatelefonica; 

import agendatelefonica.Conexao; 
import java.sql.*; 

public class GerenteBanco{ 

          Conexao cone; 
          PreparedStatement ps; 


          GerenteBanco(){ 
          String driver ="sun.jdbc.odbc.JdbcOdbcDriver"; 
             cone = new Conexao("sun.jdbc.odbc.JdbcOdbcDriver"); 

             } 

             public boolean inseriMembro(Membros m) throws SQLException 
              { 

              String SQL = "insert into agenda(nome) values(?)"; 
              System.out.println(SQL); 
               System.out.println("foi"); 
         //     ps.cone.con.prepareStatment(SQL); 
              ps = cone.getConn().prepareStatement(SQL); 
              ps.setString(1,m.getNome()); 
              ps.setString(2,m.getTelefone()); 
              ps.setString(3,m.getAniversario()); 
              ps.executeUpdate(); 
              return true; 

              } 


               public static void main (String[] args) 
        { 
        GerenteBanco gc = new GerenteBanco(); 
        Membros x = new Membros(); 
        x.setNome("Eduao2"); 
     //   x.setTelefone("26040404"); 
     //   x.setAniversario("12/12/1212"); 
         try{ 
        gc.inseriMembro(x); 
          } 
          catch(SQLException er) { er.printStackTrace();} 

        } 

          }

10 Respostas

Rafael_Steil

Da algum erro na hora que voce executa o programa?

Rafael

I

Nenhum erro, ele só não insere

x.setNome("Eduao2");
cv1

Qual o retorno do executeUpdate()? :slight_smile:

Ah, e cadê a desconexão com o banco? :shock:

Rafael_Steil

Bom, tem o lance que vc cria o sql

String SQL = “insert into agenda(nome) values(?)”;

que soh recebe um parametro, mas esta passando 3 na hora de executar…

Rafael

I

Eu voltei a passar 3 parametros e continua não inserindo nada!!!

urubatan

parece que faltou comitar a transação :slight_smile:

richardpeder

urubatan

acho que não é esse o erro não, pois me parece que existe o lance do autocommit (me corrigam se eu estiver errado).

eu acho que deve ser problemas de conexão com o BD…não pode?

Não achei erro no programa…precisaria ver ele rodando…compilando

nao existem erros ao rodar??

ate mais…

Daniel_Quirino_Olive

Altere a sua classe GerenteBanco:

package agendatelefonica;

import agendatelefonica.Conexao;
import java.sql.*;

public class GerenteBanco{

          Conexao con;
          PreparedStatement ps;


          GerenteBanco(){
              String driver ="sun.jdbc.odbc.JdbcOdbcDriver";
              con = new Conexao(driver);
          }

          public boolean insereMembro(Membros m) throws SQLException{          
              String SQL = "insert into agenda(nome) values(?)";
              System.out.println(SQL);              
              ps = con.getConn().prepareStatement(SQL);
              ps.setString(1,m.getNome());
              boolean retval = ps.executeUpdate() > 1;
              ps.close();
              con.getConn().close();
              return retval;
          }

          public static void main (String[] args){
             GerenteBanco gc = new GerenteBanco();
             Membros x = new Membros();
             x.setNome("Eduao2");     
             try{
                if(gc.insereMembro(x))
                      System.out.println("Ok!!");
                else
                      System.out.println("Blergh!!");    
             }catch(SQLException er) { 
                er.printStackTrace();
             }
        }
}

Testa aí e veja qual erro dá.

I

Apareceu Blergh!!

Funcionou perfeito, mas não deveria aparecer OK ?

Qual foi o meu erro?

Obrigado pela ajuda!!! :smiley:

Daniel_Quirino_Olive

Jogou alguma exceção?

Criado 6 de novembro de 2003
Ultima resposta 7 de nov. de 2003
Respostas 10
Participantes 6