Bom estou precisando de duas classes em uma lista
requisição e usuario
no meu bd a tabela de requisições tem uma chave estrangeira Usuario
então eu precisaria do usuario para fazer isso
user.setId(rs.getLong(“idusuario”));
public List<Requisicao> getList() {
List<Requisicao> requisicoes = new ArrayList<>();
String sql = "SELECT * FROM computador_requisicao";
try {
PreparedStatement stmt = con.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
while (rs.next()) {
Requisicao req = new Requisicao();
Usuario user = new Usuario();
req.setId(rs.getLong("id"));
user.setId(rs.getLong("idusuario"));
req.setNome(rs.getString("nome"));
req.setData(rs.getDate("data_requisicao"));
req.setMotivo(rs.getString("Observacao"));
requisicoes.add();
}
stmt.close();
rs.close();
} catch (SQLException ex) {
return null;
}
return requisicoes;
}
Alguém poderia me dar uma luuz de como eu resolveria essa situação?
Você precisa pegar esse id de usuário e realizar a consulta que retorna o usuário, ou jah retornar o usuário junto com um JOIN e obter os campos usando aliases.
não man tipo meu objetivo com essa lista é mostrar todos as requisições no banco de dados
e nessa tabela de requisições tem a chave estrangeira idusuario
que é o id do usuario que a criou
minha dificuldade toda está em retornar esse valor para o metodo setId que está em outra classe
eu não quero pegar um usuario em especifico .
tipo eu quero retornar uma lista com todas as requisições no bd
essa tabela de requisições possui uma chave estrangeira IdUsuario
eu queria retornar todos os registros em uma tableview inclusive o id do usuario que criou a req
porém são duas classes diferentes
Requisições Usuario, UsuarioDAO,RequisicaoDAO
essa user.setId está na classe usuario ai que está o problema eu não conseguiria adicionar esse campo na lista pq ele está em outra classe
while (rs.next()) {
Requisicao req = new Requisicao();
Usuario user = new Usuario();
req.setId(rs.getLong("id"));
req.setNome(rs.getString("nome"));
req.setData(rs.getDate("data_requisicao"));
req.setMotivo(rs.getString("Observacao"));
requisicoes.add(req);
se fosse assim iria funcionar de boa
porém eu preciso desse campo e não faço ideia de como adicionar 2 classes na lista
eu tou com um pouco de dúvida nessa parte
eu não utilizei extend em nenhuma
eu não sei se utilizo
Usuario extends requisição ou
Requisicao extends Usuario
**[quote=“lucastody, post:8, topic:389215, full:true”]
Nem um nem outro. Vc precisa entender a relação entre POSSUI UM e É UM. Nesse caso, penso que uma Requisicao possui um Usuario:
public class Requisicao {
private Long id;
private Usuario solicitante;
// ... demais campos da requisição
// getters e setters
}
Seguindo isso, basta retornar o usuário responsável por criar a Requisicao em cada requisição.
[/quote]
**
aaa sim, mesmo usuario criando a requisição
a requisição possui um usario?
ou usuario possui uma requisição kk
eu n consigo entender oq mudaria
no caso eu teria que fazer assim na list:
solicitante.setId(rs.getLong(“idusuario”));
?
e uma outra dúvida eu preciso usar extends em meus DAO
exemplo
usuarioDAO extends Usuario?
Adicionou. O id está dentro da requisição dentro do atributo solicitante (que é um Usuario). Para pegar o id do usuario, por exemplo, vc conseguiria asism: requisicoes.get(0).getSolicitante().getId().