Erro no arquivo main.java "List<Cadastro> minhalista = dao.getLista();"

7 respostas
A

Prezado.

Estou postando pela primeira vez uma situação que aconteceu. Criei uma Agenda com Mysql e NetBeans, criei a parte de inerface eaou editar o arquivo que crie de nome CadastroDao.java, o meu arquivo main.java, passou apresentar um erro que antes não apresentava na linha que esta List minhalista = dao.getLista();, ressalto que o nome da minha tabela é cadastro. Estou entendendo que o erro apresentado sugere para criar o método getLista() em copom.dao.CadastroDao; porém ao verificar arquivo CadastroDao, entendi que tal método já teria sido criado. Tenho certeza que estou errando em alguma coisa, porém já tentei descobrir tal erro a mais de 1 semana e não consigo sair deste item. Vocês como papa do assunto, teria condições de você me auxiliar, para poder dar andamento ao restante do programa.

Abaixo segue o código dos arquivo:

ARQUIVO main.java

package copom.consulta_informacoes;

import copom.dao.CadastroDao;

import copom.logica.Cadastro;

import java.sql.SQLException;

import java.util.List;

/**
*

  • @author coordenador
    */
    public class Main {

    /**

    • @param args the command line arguments
      */
      public static void main(String[] args) throws SQLException, SQLException {
      CadastroDao dao = new CadastroDao();

    List minhalista = dao.getLista();
    System.out.println("-------------------------------------------------------------------------------");

    for (Cadastro cadastro : minhalista) {
             System.out.println("Numero: " + cadastro.getNumero_pm());
             System.out.println("Nome Completo: " + cadastro.getNome_completo());
             System.out.println("Sobrenome: " + cadastro.getNome_guerra());
             System.out.println("Ueop: " + cadastro.getUeop());
             System.out.println("Função:" + cadastro.getFuncao());
             System.out.println("Endereço: " + cadastro.getEndereco());
             System.out.println("Telefone Fixo: " + cadastro.getTel_fixo());
             System.out.println("Telefone Trabalho: " + cadastro.getTel_trabalho());
             System.out.println("Outros Telefones: " + cadastro.getTel_outros());
             System.out.println("Celular: " + cadastro.getCelular());
             System.out.println("Email: " + cadastro.getEmail());
             System.out.println("Data de nascimento: " + cadastro.getData_nascimento());
             System.out.println("Observações: " + cadastro.getObservacoes());
    
             System.out.println("-------------------------------------------------------------------------------");
         }
    

    }

}

CÓDIGO DO ARQUIVO CadastroDao.java (Ele não apresenta erros)

  • Mostrar texto das mensagens anteriores -

package copom.dao;

import com.mysql.jdbc.Connection;

import copom.bancodados.CriaConexao;

import copom.logica.Cadastro;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.ArrayList;

import java.util.List;

/**
*

  • @author coordenador
    */
    public class CadastroDao {

    private Connection conexao;

    public CadastroDao() throws SQLException {
    
    this.conexao = CriaConexao.getConexao();
    
    }
    
    public void adciona(Cadastro c1) throws SQLException {
    
    //prepara a conexao
    
    String sql = “insert into Cadastro (numero_pm, nome_completo, nome_guerra, ueop, funcao, endereco, tel_fixo, tel_trabalho, tel_outros, celular, email, data_nascimento, observacoes)”
    
    + “values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)”;
    
    // seta os valores
    
    PreparedStatement stmt = conexao.prepareStatement(sql);
    
    stmt.setString(1, c1.getNumero_pm());
    
    stmt.setString(2, c1.getNome_completo());
    
    stmt.setString(3, c1.getNome_guerra());
    
    stmt.setString(4, c1.getUeop());
    
    stmt.setString(5, c1.getFuncao());
    
    stmt.setString(6, c1.getEndereco());
    
    stmt.setString(7, c1.getTel_fixo());
    
    stmt.setString(8, c1.getTel_trabalho());
    
    stmt.setString(9, c1.getTel_outros());
    
    stmt.setString(10, c1.getCelular());
    
    stmt.setString(11, c1.getEmail());
    
    stmt.setString(12, c1.getData_nascimento());
    
    stmt.setString(13, c1.getObservacoes());
    
    // executa o código sql
     stmt.execute();
     stmt.close();
    

    }

    public List getLista(String nome) throws SQLException {
    String sql = “select * from Cadastro where nome like ?”;

    PreparedStatement stmt = this.conexao.prepareStatement(sql);
     stmt.setString(1, nome);
    
     ResultSet rs = stmt.executeQuery();
     List<Cadastro> minhaLista = new ArrayList<Cadastro>();
     while (rs.next()) {
         Cadastro c1 = new Cadastro();
         c1.setNumero_pm(rs.getString("numero_pm"));
         c1.setNome_completo(rs.getString("nome_completo"));
         c1.setNome_guerra(rs.getString("nome_guerra"));
         c1.setUeop(rs.getString("ueop"));
         c1.setFuncao(rs.getString("funcao"));
         c1.setEndereco(rs.getString("endereco"));
         c1.setTel_fixo(rs.getString("tel_fixo"));
         c1.setTel_trabalho(rs.getString("tel_trabalho"));
         c1.setTel_outros(rs.getString("tel_outros"));
         c1.setCelular(rs.getString("celular"));
         c1.setEmail(rs.getString("email"));
         c1.setData_nascimento(rs.getString("data_nascimento"));
         c1.setObservacoes(rs.getString("observacoes"));
         minhaLista.add(c1);
     }
     rs.close();
     stmt.close();
     return minhaLista;
    

    }

    public void altera(Cadastro c1) throws SQLException {
    String sql = "update cadastro set numero_pm=?, nome_completo=?, nome_guerra=?, "

    + "ueop=?, funcao=?, endereco=?, tel_fixo=?, tel_trabalho=?, tel_outros=?, celular=?, email=?, "
             + "data_nascimento=?, observacoes=? where id_Cadastro=?";
    
    
     PreparedStatement stmt = conexao.prepareStatement(sql);
    
     stmt.setString(1, c1.getNumero_pm());
     stmt.setString(2, c1.getNome_completo());
     stmt.setString(3, c1.getNome_guerra());
     stmt.setString(4, c1.getUeop());
     stmt.setString(5, c1.getFuncao());
     stmt.setString(6, c1.getEndereco());
     stmt.setString(7, c1.getTel_fixo());
     stmt.setString(8, c1.getTel_trabalho());
     stmt.setString(9, c1.getTel_outros());
     stmt.setString(10, c1.getCelular());
     stmt.setString(11, c1.getEmail());
     stmt.setString(12, c1.getData_nascimento());
     stmt.setString(13, c1.getObservacoes());
     stmt.setLong(14, c1.getId_Cadastro());
    
    
     // executa o código sql
     stmt.execute();
     stmt.close();
    

    }

    public void remove(Cadastro c1) throws SQLException {
    String sql = “delete from cadastro where id_Cadastro=?”;

    PreparedStatement stmt = conexao.prepareStatement(sql);
     stmt.setLong(1, c1.getId_Cadastro());
     stmt.execute();
     stmt.close();
    

    }
    }

7 Respostas

zoren

Coloque seu código entre as tags code

e qual é o erro que dá?

A

Amigo

Apresenta o seguinte erro:

Conectado ao Banco de Dados

[color=red]Exception in thread “main” java.lang.RuntimeException: Uncompilable source code

at copom.consulta_informacoes.Main.main(Main.java:52)

Java Result: 1[/color]

CONSTRUÍDO COM SUCESSO (tempo total: 4 segundos)

O que pode ser?

zoren

O que tem na classe Main na linha 52?

A

Desculpe com relação a tags code, abaixo segue os arquivos

ARQUIVO main.java

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package copom.consulta_informacoes;

import copom.dao.CadastroDao;
import copom.logica.Cadastro;
import java.sql.SQLException;
import java.util.List;





/**
 *
 * @author coordenador
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws SQLException, SQLException {
        // TODO code application logic here
  /**      Connection conexao = CriaConexao.getConexao();
        conexao.close();
        System.out.println("Desconectando do Banco de Dados");

        Cadastro cadastro = new Cadastro();
        cadastro.setNumero_pm("1111");
        cadastro.setNome_completo("Assunção");
        cadastro.setNome_guerra("julio");
        cadastro.setUeop("COPOM");
        cadastro.setFuncao("Coordenador");
        cadastro.setEndereco("Rua Raquel ");
        cadastro.setTel_fixo("([telefone removido]");
        cadastro.setTel_trabalho("(12)311312");
        cadastro.setTel_outros("([telefone removido]");
        cadastro.setCelular("([telefone removido]");
        cadastro.setEmail("[email removido]");
        cadastro.setData_nascimento("19-01-1971");
        cadastro.setObservacoes("Programa COPOM");

        CadastroDao dao = new CadastroDao();
        dao.adciona(cadastro);
        System.out.println("Adicionado no Banco de Dados");
         */
        CadastroDao dao = new CadastroDao();
        List<Cadastro> minhalista = dao.getLista();
              System.out.println("-------------------------------------------------------------------------------");

            for (Cadastro cadastro : minhalista) {
                System.out.println("Numero: " + cadastro.getNumero_pm());
                System.out.println("Nome Completo: " + cadastro.getNome_completo());
                System.out.println("Sobrenome: " + cadastro.getNome_guerra());
                System.out.println("Ueop: " + cadastro.getUeop());
                System.out.println("Função:" + cadastro.getFuncao());
                System.out.println("Endereço: " + cadastro.getEndereco());
                System.out.println("Telefone Fixo: " + cadastro.getTel_fixo());
                System.out.println("Telefone Trabalho: " + cadastro.getTel_trabalho());
                System.out.println("Outros Telefones: " + cadastro.getTel_outros());
                System.out.println("Celular: " + cadastro.getCelular());
                System.out.println("Email: " + cadastro.getEmail());
                System.out.println("Data de nascimento: " + cadastro.getData_nascimento());
                System.out.println("Observações: " + cadastro.getObservacoes());

                System.out.println("-------------------------------------------------------------------------------");
            }

    }

}
[color=red]Abaixo CÓDIGO DO ARQUIVO CadastroDao.java (Ele não apresenta erros) - Mostrar texto das mensagens anteriores - [/color]
package copom.dao;

import com.mysql.jdbc.Connection;
import copom.bancodados.CriaConexao;
import copom.logica.Cadastro;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

/**
*
* @author coordenador
*/
public class CadastroDao {

private Connection conexao;

public CadastroDao() throws SQLException {
this.conexao = CriaConexao.getConexao();
}

public void adciona(Cadastro c1) throws SQLException {
//prepara a conexao
String sql = "insert into Cadastro (numero_pm, nome_completo, nome_guerra, ueop, funcao, endereco, tel_fixo, tel_trabalho, tel_outros, celular, email, data_nascimento, observacoes)"
+ "values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)";
// seta os valores
PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setString(1, c1.getNumero_pm());
stmt.setString(2, c1.getNome_completo());
stmt.setString(3, c1.getNome_guerra());
stmt.setString(4, c1.getUeop());
stmt.setString(5, c1.getFuncao());
stmt.setString(6, c1.getEndereco());
stmt.setString(7, c1.getTel_fixo());
stmt.setString(8, c1.getTel_trabalho());
stmt.setString(9, c1.getTel_outros());
stmt.setString(10, c1.getCelular());
stmt.setString(11, c1.getEmail());
stmt.setString(12, c1.getData_nascimento());
stmt.setString(13, c1.getObservacoes());

// executa o código sql
stmt.execute();
stmt.close();
}

public List<Cadastro> getLista(String nome) throws SQLException {
String sql = "select * from Cadastro where nome like ?";

PreparedStatement stmt = this.conexao.prepareStatement(sql);
stmt.setString(1, nome);

ResultSet rs = stmt.executeQuery();
List<Cadastro> minhaLista = new ArrayList<Cadastro>();
while (rs.next()) {
Cadastro c1 = new Cadastro();
c1.setNumero_pm(rs.getString("numero_pm"));
c1.setNome_completo(rs.getString("nome_completo"));
c1.setNome_guerra(rs.getString("nome_guerra"));
c1.setUeop(rs.getString("ueop"));
c1.setFuncao(rs.getString("funcao"));
c1.setEndereco(rs.getString("endereco"));
c1.setTel_fixo(rs.getString("tel_fixo"));
c1.setTel_trabalho(rs.getString("tel_trabalho"));
c1.setTel_outros(rs.getString("tel_outros"));
c1.setCelular(rs.getString("celular"));
c1.setEmail(rs.getString("email"));
c1.setData_nascimento(rs.getString("data_nascimento"));
c1.setObservacoes(rs.getString("observacoes"));
minhaLista.add(c1);
}
rs.close();
stmt.close();
return minhaLista;

}

public void altera(Cadastro c1) throws SQLException {
String sql = "update cadastro set numero_pm=?, nome_completo=?, nome_guerra=?, "

+ "ueop=?, funcao=?, endereco=?, tel_fixo=?, tel_trabalho=?, tel_outros=?, celular=?, email=?, "
+ "data_nascimento=?, observacoes=? where id_Cadastro=?";


PreparedStatement stmt = conexao.prepareStatement(sql);

stmt.setString(1, c1.getNumero_pm());
stmt.setString(2, c1.getNome_completo());
stmt.setString(3, c1.getNome_guerra());
stmt.setString(4, c1.getUeop());
stmt.setString(5, c1.getFuncao());
stmt.setString(6, c1.getEndereco());
stmt.setString(7, c1.getTel_fixo());
stmt.setString(8, c1.getTel_trabalho());
stmt.setString(9, c1.getTel_outros());
stmt.setString(10, c1.getCelular());
stmt.setString(11, c1.getEmail());
stmt.setString(12, c1.getData_nascimento());
stmt.setString(13, c1.getObservacoes());
stmt.setLong(14, c1.getId_Cadastro());


// executa o código sql
stmt.execute();
stmt.close();
}

public void remove(Cadastro c1) throws SQLException {
String sql = "delete from cadastro where id_Cadastro=?";

PreparedStatement stmt = conexao.prepareStatement(sql);
stmt.setLong(1, c1.getId_Cadastro());
stmt.execute();
stmt.close();

}
}
zoren

Me parece que o erro é a chamada do método getLista

No seu DAO, ele recebe um parâmetro e na sua classe Main, vc chama um sem parâmetros, vc pode passar uma string vazia para trazer todos.

List<Cadastro> lista = dao.getLista("");
A

Amigão.

Obrigado deu certo, porém surgiu outro erro.

Exception in thread "main" com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''''' at line 1 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:532) at com.mysql.jdbc.Util.handleNewInstance(Util.java:406) at com.mysql.jdbc.Util.getInstance(Util.java:381) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1030) at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1936) at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2060) at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2542) at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1734) at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1885) at copom.dao.CadastroDao.getLista(CadastroDao.java:58) at copom.consulta_informacoes.Main.main(Main.java:52)

A

Amigão

Peço que desconsidere a mensagem anterior, já consegui resolver o erro. Para conhecimento de todos, tive dois erros no código:

1º Erro.
Uma aspa a mais no código

2º Erro

Estava setando a coluna errada de minha tabela Cadastro. Alterei e deu certo.


Mais uma vez muito OBRIGADO.

RESOLVIDO.

Criado 23 de maio de 2010
Ultima resposta 29 de mai. de 2010
Respostas 7
Participantes 2