Metodo de busca por codigo

4 respostas
S

To com dificuldades para implementar um codigo que retorne os dados de um cadastro ,pois não sei como chamar os atributos da chave estrangeira, segue o método.

public Professor TrazerProfessor(Professor p) throws SQLException {

StringBuilder sql= new StringBuilder();
	sql.append("SELECT p.codigo,p.nome,p.email,c.nome,c.carga_horaria");
	sql.append(" from professor as p  ");
	sql.append(" inner join curso as c on c.codigo = p.curso_codigo ");
	sql.append(" where p.email = ?");
	
	Connection conexao = ConexaoFactory.conectar();
	PreparedStatement comando = (PreparedStatement) conexao.prepareStatement(sql.toString());

	comando.setLong(1, p.getCodigo());
	
	ResultSet resultado= comando.executeQuery();
	
	Professor retorno =null;
	
	if(resultado.next()) {
		retorno = new Professor();
		retorno.setCodigo(resultado.getLong("codigo"));
		retorno.setNome(resultado.getString("nome"));
		retorno.setEmail(resultado.getString("email"));
		
		Curso c= new Curso();
		c.setNome(resultado.getString("nome"));
		c.setCargaHoraria(resultado.getString("carga_horaria"));

4 Respostas

D

Vc deveria explicar melhor o que está acontecendo, mas acho que isso resolveria:

sql.append("SELECT p.codigo,p.nome,p.email,c.nome as nome_curso,c.carga_horaria");

e

c.setNome(resultado.getString("nome_curso"));
S

Boa noite primeiro obrigado por responder,eu quero trazer esses dados para a tela, e como eu faço esse retorno ja que vc chamou com um objeto da classe ‘curso’ e tem a questão da carga horaria também

S

Acho que não consegui explicar direito, vamos lá,rs .Bom eu estou retornando com o objeto 'retorno ’ da classe Professor , como eu faço para retornar os dados que estão sendo recebidos pelo objeto ‘c’ da classe curso

D

Então o problema é o retorno, altere o seguinte:

// public Professor TrazerProfessor(Professor p) throws SQLException {
public Curso TrazerCurso(Professor p) throws SQLException {

// Professor retorno =null;
Professor retorno = p;

Fazendo isso o objeto passado pelo parâmetro será atualizado e retornará o curso.

O código está estranho, caso queira melhorar, poderia postar o código das classes Professor e Curso?

Pois geralmente se faz assim:

class Professor {
  Curso curso;
}

mas acho que vc fez assim:

class Professor {
  long codigoDoCurso;
}

o método trazerProfessor também não está muito certo, seria melhor fazer assim:

public Professor buscarProfessorPorEmail(String email) {
Criado 23 de maio de 2018
Ultima resposta 25 de mai. de 2018
Respostas 4
Participantes 2