Problema ao inserir dados na tabela do sql server[RESOLVIDO]

14 respostas
D

Boa noite a todos. Bom, estou com o seguinte problema:

Ao cadastrar dados na minha tabela Aluno os campos turmaAluno ficam da seguinte forma: geresc.Turma.Turma@595bcd, geresc.Turma.Turma@4532ba e geresc.Turma.Turma@f65ce5.

Alguém pode me ajudar? Grato desde já.

14 Respostas

renamed

Parece que você está inserindo o conteúdo retornado pelo toString() das suas classes, vc está usando os métodos “get” corretamente?

Se possível, poste o código onde vc faz a inserção, pelo java.

D
Turma t = new Turma();
            a.setTurmaAluno(t);
            a.getTurmaAluno().setNomeTurma(jTextField8.getText());
T

Cara, você está fazendo isso através de um BEAN e DAO? Está inserindo na mão?
Posta o código mais completo que tentaremos ajuda-lo…

D

Certo. Aqui é onde realizo o cadastro do aluno:

try {
            // TODO add your handling code here:
            Aluno a = new Aluno();
            a.setNomeAluno(jTextField1.getText());
            a.setMatriculaAluno(Integer.parseInt(jTextField2.getText()));
            a.setDataNascimento(jTextField10.getText());
            a.setResponsavelAluno(jTextField3.getText());
            a.setPaiAluno(jTextField4.getText());
            a.setMaeAluno(jTextField5.getText());
            a.setTelefoneAluno(jTextField9.getText());
            a.setEnderecoAluno(jTextField6.getText());
            a.setEmailAluno(jTextField7.getText());
            a.setSexoAluno(jComboBox1.getSelectedItem().toString());
            
            Turma t = new Turma();
            a.setTurmaAluno(t);
            a.getTurmaAluno().setNomeTurma(jTextField8.getText());
            
            a.getTurmaAluno().setQuantidadeAlunos(t.quantidadeAlunos++);
            RepositorioAluno ra = new RepositorioAluno();
            ra.inserir(a);  
            
            JOptionPane.showMessageDialog(rootPane, "Aluno cadastrado com sucesso");
            
        } catch (Exception ex) {
            JOptionPane.showMessageDialog(rootPane, ex.getMessage());
        }

E aqui é a classe Aluno, com seus gets e sets:

public class Aluno {

    public int matriculaAluno;
    public String telefoneAluno;
    public String nomeAluno;
    public String paiAluno;
    public String maeAluno;
    public String responsavelAluno;
    public String enderecoAluno;
    public Turma turmaAluno;
    public String emailAluno;
    public String dataNascimento;
    public String sexoAluno;

    /**
     * @return the matriculaAluno
     */
    public int getMatriculaAluno() {
        return matriculaAluno;
    }

    /**
     * @param matriculaAluno the matriculaAluno to set
     */
    public void setMatriculaAluno(int matriculaAluno) {
        this.matriculaAluno = matriculaAluno;
    }

    /**
     * @return the telefone
     */
    public String getTelefoneAluno() {
        return telefoneAluno;
    }

    /**
     * @param telefone the telefone to set
     */
    public void setTelefoneAluno(String telefoneAluno) {
        this.telefoneAluno = telefoneAluno;
    }

    /**
     * @return the nomeAluno
     */
    public String getNomeAluno() {
        return nomeAluno;
    }

    /**
     * @param nomeAluno the nomeAluno to set
     */
    public void setNomeAluno(String nomeAluno) {
        this.nomeAluno = nomeAluno;
    }

    /**
     * @return the paiAluno
     */
    public String getPaiAluno() {
        return paiAluno;
    }

    /**
     * @param paiAluno the paiAluno to set
     */
    public void setPaiAluno(String paiAluno) {
        this.paiAluno = paiAluno;
    }

    /**
     * @return the maeAluno
     */
    public String getMaeAluno() {
        return maeAluno;
    }

    /**
     * @param maeAluno the maeAluno to set
     */
    public void setMaeAluno(String maeAluno) {
        this.maeAluno = maeAluno;
    }

    /**
     * @return the responsavelAluno
     */
    public String getResponsavelAluno() {
        return responsavelAluno;
    }

    /**
     * @param responsavelAluno the responsavelAluno to set
     */
    public void setResponsavelAluno(String responsavelAluno) {
        this.responsavelAluno = responsavelAluno;
    }

    /**
     * @return the endereco
     */
    public String getEnderecoAluno() {
        return enderecoAluno;
    }

    /**
     * @param endereco the endereco to set
     */
    public void setEnderecoAluno(String enderecoAluno) {
        this.enderecoAluno = enderecoAluno;
    }

    /**
     * @return the turma
     */
    public Turma getTurmaAluno() {
        return turmaAluno;
    }

    /**
     * @param turma the turma to set
     */
    public void setTurmaAluno(Turma turmaAluno) {
        this.turmaAluno = turmaAluno;
    }

    /**
     * @return the emailAluno
     */
    public String getEmailAluno() {
        return emailAluno;
    }

    /**
     * @param emailAluno the emailAluno to set
     */
    public void setEmailAluno(String emailAluno) {
        this.emailAluno = emailAluno;
    }

    /**
     * @return the dataNascimento
     */
    public String getDataNascimento() {
        return dataNascimento;
    }

    /**
     * @param dataNascimento the dataNascimento to set
     */
    public void setDataNascimento(String dataNascimento) {
        this.dataNascimento = dataNascimento;
    }

    /**
     * @return the sexoAluno
     */
    public String getSexoAluno() {
        return sexoAluno;
    }

    /**
     * @param sexoAluno the sexoAluno to set
     */
    public void setSexoAluno(String sexoAluno) {
        this.sexoAluno = sexoAluno;
    }
}

Vlw!

raffamz

Amigo, se não me engano, vc está imprimindo o endereço do conteúdo arquivo no BD.

Verifique como vc está imprimindo.

Abraço,

natanaelv

Poste a classe que possui o método inserir.

raffamz

Amigo,

Seu getTumaAluno não deveria devolver uma String? A variável turmaAluno foi declarada como Turma. Desta forma ela não conseguirá retornar o nome.

Pode postar a classe Turma para gente?

Abraço,

D

Classe Turma:

public class Turma {
    
    public int codigoTurma;
    public int quantidadeAlunos;
    public String nomeTurma;
    public Professor professorResponsavel;
    public String turno;
    Turma t;
    
    /**
     * @return the codigoTurma
     */
    public int getCodigoTurma() {
        return codigoTurma;
    }

    /**
     * @param codigoTurma the codigoTurma to set
     */
    public void setCodigoTurma(int codigoTurma) {
        this.codigoTurma = codigoTurma;
    }

    /**
     * @return the quantidadeAlunos
     */
    public int getQuantidadeAlunos() {
        return quantidadeAlunos;
    }

    /**
     * @param quantidadeAlunos the quantidadeAlunos to set
     */
    public void setQuantidadeAlunos(int quantidadeAlunos) {
        this.quantidadeAlunos = quantidadeAlunos;
    }

    /**
     * @return the nomeTurma
     */
    public String getNomeTurma() {
        return nomeTurma;
    }

    /**
     * @param nomeTurma the nomeTurma to set
     */
    public void setNomeTurma(String nomeTurma) {
        this.nomeTurma = nomeTurma;
    }

    /**
     * @return the professorResponsavel
     */
    public Professor getProfessorResponsavel() {
        return professorResponsavel;
    }

    /**
     * @param professorResponsavel the professorResponsavel to set
     */
    public void setProfessorResponsavel(Professor professorResponsavel) {
        this.professorResponsavel = professorResponsavel;
    }

    /**
     * @return the turno
     */
    public String getTurno() {
        return turno;
    }

    /**
     * @param turno the turno to set
     */
    public void setTurno(String turno) {
        this.turno = turno;
    }

}

Vlw!

D

Classe RepositorioAluno, que possui o método inserir:

public void inserir(Aluno aluno) throws Exception {
        try {
            //abrindo a conexão
            Statement conex = conectar();
            //instrução sql correspondente a inserção do cliente
            String sql = "INSERT INTO Aluno (nomeAluno, matriculaAluno, dataNascimento, responsavelAluno, paiAluno, maeAluno, telefoneAluno, enderecoAluno, emailAluno, turmaAluno, sexoAluno) ";
            sql += "VALUES ('" + aluno.getNomeAluno() + "'," + aluno.getMatriculaAluno() + ",'" + aluno.getDataNascimento() + "','" + aluno.getResponsavelAluno() + "','" + aluno.getPaiAluno() + "','" + aluno.getMaeAluno() + "','" + aluno.getTelefoneAluno() + "','" + aluno.getEnderecoAluno() + "','" + aluno.getEmailAluno() + "','" + aluno.getTurmaAluno() + "','" + aluno.getSexoAluno() + "')";
            //executando a instrução sql
            conex.execute(sql);
        } catch (SQLException e) {
            //caso haja algum erro neste método será levantada esta execeção
            throw new Exception("Erro ao executar inserção: " + e.getMessage());
        }
        //fechando a conexão com o banco de dados
        desconectar();
    }

Vlw!

F

Delmar27:
Classe RepositorioAluno, que possui o método inserir:

public void inserir(Aluno aluno) throws Exception {
        try {
            //abrindo a conexão
            Statement conex = conectar();
            //instrução sql correspondente a inserção do cliente
            String sql = "INSERT INTO Aluno (nomeAluno, matriculaAluno, dataNascimento, responsavelAluno, paiAluno, maeAluno, telefoneAluno, enderecoAluno, emailAluno, turmaAluno, sexoAluno) ";
            sql += "VALUES ('" + aluno.getNomeAluno() + "'," + aluno.getMatriculaAluno() + ",'" + aluno.getDataNascimento() + "','" + aluno.getResponsavelAluno() + "','" + aluno.getPaiAluno() + "','" + aluno.getMaeAluno() + "','" + aluno.getTelefoneAluno() + "','" + aluno.getEnderecoAluno() + "','" + aluno.getEmailAluno() + "','" + aluno.getTurmaAluno() + "','" + aluno.getSexoAluno() + "')";
            //executando a instrução sql
            conex.execute(sql);
        } catch (SQLException e) {
            //caso haja algum erro neste método será levantada esta execeção
            throw new Exception("Erro ao executar inserção: " + e.getMessage());
        }
        //fechando a conexão com o banco de dados
        desconectar();
    }

Vlw!

Olha, aluno.getTurmaAluno() te retorna um objeto Turma certo? O que vc quer inserir no banco? Id da turma?
Tá faltando um .getCodigoTurma() aí.

Portanto ficaria: aluno.getTurmaAluno().getCodigoTurma()

Outra coisa, de uma olhadinha em preparedStatement. Ficar juntando Strings assim vai te dar problemas futuros.

D

Eu quero que o nome da turma seja atrelado aos dados do aluno…

Abc!

F

Uai, se é o nome aluno.getTurmaAluno().getNomeTurma()

D

Aham, eu fiz isso mesmo…

Obrigado pela atenção!

D

Problema resolvido!

Grato a todos.

Criado 24 de outubro de 2012
Ultima resposta 26 de out. de 2012
Respostas 14
Participantes 6