Hola la verdad que estoy reescribiendo la aplicación con el patrón dao, estoy separando la vista de la lógica:
Está ahora correcto como obtengo los datos??
Código:
private void initActionPanel() {
JLabel lblSeller = new JLabel("Vendedor", SwingConstants.CENTER);
JComboBox jcbSeller = new JComboBox();
jcbSeller.removeAllItems();
try {
PersonDAOImpl personImplement = new PersonDAOImpl();
for (Person per : personImplement.showPerson()) {
String seller;
seller = per.getRol();
if(seller.equals("seller")){
jcbSeller.addItem(per.getName() + " " + per.getSurname1());
}
}
} catch (Exception e) {
System.err.println(e.getMessage());
}
JButton btnRegisterSale = new JButton("Resgistrar venta");
JButton btnSalesHistory = new JButton("Historico de ventas");
actionPanel = new JPanel();
actionPanel.setLayout(new GridLayout(1, 4, 10, 10));
actionPanel.add(lblSeller);
actionPanel.add(jcbSeller);
actionPanel.add(btnRegisterSale);
actionPanel.add(btnSalesHistory);
}
Ahora me surge una duda, tengo la interfaz con su clase de implementación donde tengo los métodos para insertar, eliminar, actualizar y listar. En el caso anterior para listar no tengo problemas, ya que con el if localizo los vendedores y muestro los datos, pero tengo un buscador y tengo que cambiar la consulta entera, ¿Es recomendable crear metodos en la clase persona?, o por el contrario creo otra interface y otra clase impl con los metos que necesito en el buscador.
La interfaz es esta
Código:
public interface PersonDAO {
public void addPerson(Person person) throws SQLException;
public void updatePerson(Person person) throws SQLException;
public void removePerson(Person person) throws SQLException;
public List<Person> showPerson() throws SQLException;
}
La implementacion es esta
Código:
public class PersonDAOImpl extends DBConnection implements PersonDAO {
@Override
public List<Person> showPerson() throws SQLException {
List<Person> listPerson = null;
try {
this.connect();
PreparedStatement st = this.link.prepareStatement("SELECT * FROM person");
listPerson = new ArrayList();
ResultSet rs = st.executeQuery();
while (rs.next()) {
Person person = new Person();
person.setIdPerson(rs.getInt("id_person"));
person.setRol(rs.getString("rol"));
person.setName(rs.getString("name"));
person.setSurname1(rs.getString("surname_1"));
person.setSurname2(rs.getString("surname_2"));
person.setEmail(rs.getString("email"));
person.setDni(rs.getString("dni"));
person.setPhoneNumber(rs.getInt("phone_number"));
listPerson.add(person);
}
rs.close();
st.close();
} catch (Exception e) {
throw e;
} finally {
this.disconnect();
}
return listPerson;
}