como trata-se de JDBC, o que tu precisa fazer é pegar esse ID e em seguida realizar um find pela chave primária do usuário.
Dessa forma, tu cria um objeto usuário e seta ele no seu objeto de retorno.
C
CaioNascimento
nel,
vc poderia me dar um exemplo só pra contextualizar o que você disse?
nel
CaioNascimento:
nel,
vc poderia me dar um exemplo só pra contextualizar o que você disse?
Claro.
// supondo que a chave primária do usuário seja um inteiro
public Usuario findById(int id) {
// rs = resultSet populado e etc
Usuario user = new Usuario();
while(rs.next()) {
user.setNome(rs.getString("nome"));
// outros atributos
}
return user;
}
mas é justamente aqui que está o erro, esse setIdUsuario é do tipo Usuario.
criei o metodo find:
Classe UsuarioDaoMysql onde fica todo os meus metodos.
public Usuario findById(int id){
try {
String sql = "select * from usuario";
Statement stmt;
stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);
Usuario user = new Usuario();
while (rs.next()){
user.setIdUsuario(rs.getInt("idUsuario"));
}
return user;
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
Não entendi muito bem o que você quis dizer… seria algo assim?
Objeto MonitoriaOperador
publicclassMonitoriaOperador{privateintidMonitoria;privateUsuariousuario;//getters e setters}
Consulta de Usuario
publicUsuariofindById(Usuariousuario){//rs = busca ao banco pelo id informado pelo objeto passado pelo parametro;while(rs.next()){usuario.setIdUsuario(rs.getInt("id_usuario"));usuario.setNomeUsuario(rs;getString("nome_usuario"));}returnusuario;}
Não entendi muito bem o que você quis dizer... seria algo assim?
Objeto MonitoriaOperador
publicclassMonitoriaOperador{privateintidMonitoria;privateUsuariousuario;//getters e setters}
Consulta de Usuario
public Usuario findById(Usuario usuario){
//rs = busca ao banco pelo id informado pelo objeto passado pelo parametro;
while(rs.next()){
usuario.setIdUsuario(rs.getInt("id_usuario"));
usuario.setNomeUsuario(rs;getString("nome_usuario"));
}
return usuario;
}
Construção da lista de Monitorias:
while(rs.next()){
MonitoriaOperador m = new MonitoriaOperador();
m.setIdMonitoria(rs.getInt("id_monitoria"));
m.getUsuario.setIdUsuario(rs.getInt("id_usuario"));
Usuario usu = this.findById(m.getUsuario());
m.setUsuario(usu);
}
Exatamente isso. O JDBC não vai lhe trazer o objeto populado, o JPA faria isso.
Mas estamos falando em JDBC e portanto, isso deve ser feito de forma manual :)
E mais um detalhe, no banco tu não "joga" uma tabela inteira dentro de outra, tu adiciona uma referência, conhecida como Chave Estrangeira.