При отладке наблюдаю, что результаты запроса в списке получают все значения из базы данных, но в моем контроллере появляется только последняя запись из моего списка.
Я уже заметил, что проблема в моем контроллере, но я не знаю, как ее решить. Я думаю, что проблема в том, когда я просматриваю свой список.
мой DAO:
List<Departamento> departamentos = new ArrayList();
String query = "SELECT * FROM departamentos";
try {
PreparedStatement ps = con.prepareStatement(query);
ResultSet rs = ps.executeQuery();
while(rs.next()){
Departamento departamento = new Departamento();
departamento.setId_departamento(rs.getInt("id_departamentos"));
departamento.setNome_setor(rs.getString("nome_setor"));
departamentos.add(departamento);
}
ps.close();
rs.close();
}catch (SQLException ex) {
Logger.getLogger(DepartamentoDAO.class.getName()).log(Level.SEVERE, null, ex);
}
return departamentos;
}
мой контроллер
@FXML
private JFXComboBox<Departamento> cbDepart;
private ObservableList<Departamento> obsDepartamentos;
public void initialize(URL url, ResourceBundle rb) {
DepartamentoDAO dao = new DepartamentoDAO();
for(Departamento d: dao.read()){
obsDepartamentos = FXCollections.observableArrayList(d);
cbDepart.setItems(obsDepartamentos);
}
}
моя модель:
public class Departamento {
private int id_departamento, idchefe;
private String nome_setor;
public Departamento(int id_departamento, int idchefe, String nome_setor) {
this.id_departamento = id_departamento;
this.idchefe = idchefe;
this.nome_setor = nome_setor;
}
public Departamento(String nome_setor) {
this.nome_setor = nome_setor;
}
public Departamento(int id_departamento) {
this.id_departamento = id_departamento;
}
public Departamento(int id_departamento, String nome_setor) {
this.id_departamento = id_departamento;
this.nome_setor = nome_setor;
}
public Departamento() {
}
public int getIdchefe() {
return idchefe;
}
public void setIdchefe(int idchefe) {
this.idchefe = idchefe;
}
public int getId_departamento() {
return id_departamento;
}
public void setId_departamento(int id_departamento) {
this.id_departamento = id_departamento;
}
public String getNome_setor() {
return nome_setor;
}
public void setNome_setor(String nome_setor) {
this.nome_setor = nome_setor;
}
public String toString() {
return getNome_setor();
}
}
DepartamentoDAO dao = new DepartamentoDAO();
for(Departamento d: dao.read()){
obsDepartamentos = FXCollections.observableArrayList(d);
cbDepart.setItems(obsDepartamentos);
}