Correcta implementacion MVC, DAO
Publicado por Julian (2 intervenciones) el 27/01/2018 17:30:57
Hola, buen dia. Soy nuevo en el Foro.
En pro de aplicar de forma correcta los conceptos de MVC, DAO me gustaría saber si el siguiente fragmento de un proyecto que hice esta bien implementado siguiendo los estándares de los patrones antes mencionados:
Modelo EmpleadoVO:
EmpleadoDAO:
Controlador:
Vista:
En cuanto a la vista, no pondré el código completo ya que uso el Gui Builder de Netbeans para realizar todo lo relacionado con la Interfaz Gráfica, sin embargo pondré el código que pongo en uno de los botones:
Me gustaría la opinión de ustedes referente al código que he puesto, si estoy implementando de forma correcta MVC y DAO, donde tengo mas duda es el Controlador, adicional a esto, yo manejo un Controlador por cada DAO.
Aclaro: Como se puede observar, en el código del botón "Guardar" que se encuentra en la Vista creo un objeto de tipo Empleado, llenando sus campos con los datos que recolecto del Formulario, luego invoco al metodo correspondiente del Controlador, al cual le paso como parámetro el objeto de tipo Empleado, tambien quiero decir que tengo un Controlador por cada DAO/DTO que he creado.
En pro de aplicar de forma correcta los conceptos de MVC, DAO me gustaría saber si el siguiente fragmento de un proyecto que hice esta bien implementado siguiendo los estándares de los patrones antes mencionados:
Modelo EmpleadoVO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package Modelo;
/**
*
* @author Julian Lopez
*/
public class Empleado {
private int empleadoId;
private String empleadoNombre;
private String empleadoApellido;
private String empleadoContacto;
public Empleado(int empleadoId, String empleadoNombre, String empleadoApellido, String empleadoContacto) {
this.empleadoId = empleadoId;
this.empleadoNombre = empleadoNombre;
this.empleadoApellido = empleadoApellido;
this.empleadoContacto = empleadoContacto;
}
public Empleado() {
this.empleadoId = 0;
this.empleadoNombre = "";
this.empleadoApellido = "";
this.empleadoContacto = "";
}
public int getEmpleadoId() {
return empleadoId;
}
public void setEmpleadoId(int empleadoId) {
this.empleadoId = empleadoId;
}
public String getEmpleadoNombre() {
return empleadoNombre;
}
public void setEmpleadoNombre(String empleadoNombre) {
this.empleadoNombre = empleadoNombre;
}
public String getEmpleadoApellido() {
return empleadoApellido;
}
public void setEmpleadoApellido(String empleadoApellido) {
this.empleadoApellido = empleadoApellido;
}
public String getEmpleadoContacto() {
return empleadoContacto;
}
public void setEmpleadoContacto(String empleadoContacto) {
this.empleadoContacto = empleadoContacto;
}
}
EmpleadoDAO:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
public class EmpleadoDAO {
public ArrayList<Empleado> listarEmpleado(int empleadoId) {
Connection con = null;
PreparedStatement prepared = null;
ResultSet result = null;
ArrayList<Empleado> listado = new ArrayList<>();
try {
con = Conexion.getConection();
String selectSQL = "";
if (empleadoId == 0) {
selectSQL = "SELECT * FROM tb_empleado";
} else {
selectSQL = "SELECT * FROM tb_empleado WHERE Empleado_ID = ?";
}
prepared = con.prepareStatement(selectSQL);
if (empleadoId != 0) {
prepared.setInt(1, empleadoId);
}
result = prepared.executeQuery();
Empleado empleado = null;
while (result.next()) {
empleado = new Empleado();
empleado.setEmpleadoId(result.getInt("Empleado_ID"));
empleado.setEmpleadoNombre(result.getString("Empleado_Nombre"));
empleado.setEmpleadoApellido(result.getString("Empleado_Apellido"));
empleado.setEmpleadoContacto(result.getString("Empleado_Contacto"));
listado.add(empleado);
}
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Código : "
+ ex.getErrorCode() + "\nError :" + ex.getMessage());
}
return listado;
}
public int grabarEmpleado(Empleado empleado) {
Connection con = null;
PreparedStatement prepared = null;
int resultado = 0;
try {
con = Conexion.getConection();
String insertSQL = "INSERT INTO tb_empleado VALUES ( ?, ?, ?, ?)";
prepared = con.prepareStatement(insertSQL);
prepared.setInt(1, empleado.getEmpleadoId());
prepared.setString(2, empleado.getEmpleadoNombre());
prepared.setString(3, empleado.getEmpleadoApellido());
prepared.setString(4, empleado.getEmpleadoContacto());
resultado = prepared.executeUpdate();
} catch (SQLException ex) {
JOptionPane.showMessageDialog(null, "Código : "
+ ex.getErrorCode() + "\nError :" + ex.getMessage());
}
return resultado;
}
Controlador:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class ControladorEmpleado {
public static ArrayList<Empleado> listarEmpleado(int empleadoId) {
ArrayList<Empleado> listaEmpleado; //= new ArrayList<>();
EmpleadoDAO empleadoDAO = new EmpleadoDAO();
listaEmpleado = empleadoDAO.listarEmpleado(empleadoId);
return listaEmpleado;
}
public static int grabarEmpleado(Empleado empleado) {
EmpleadoDAO empleadoDAO = new EmpleadoDAO();
int resultado = empleadoDAO.grabarEmpleado(empleado);
return resultado;
}
Vista:
En cuanto a la vista, no pondré el código completo ya que uso el Gui Builder de Netbeans para realizar todo lo relacionado con la Interfaz Gráfica, sin embargo pondré el código que pongo en uno de los botones:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
private void btnGrabarActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
if (txtEmpleadoID.getText().equals("") || txtEmpleadoNombre.getText().equals("")
|| txtEmpleadoApellido.getText().equals("") || txtEmpleadoContacto.getText().equals("")
|| txtEmpleadoDireccion.getText().equals("") || txtEmpleadoSalario.getText().equals("")) {
JOptionPane.showMessageDialog(null, "Por favor diligencie todos los datos", "Falta Informacion", JOptionPane.INFORMATION_MESSAGE);
} else {
Empleado miEmpleado = new Empleado();
CargoEmpleado cargosEmpleado = new CargoEmpleado();
cargosEmpleado = (CargoEmpleado) cboCargo.getSelectedItem();
int empleadoId = Integer.parseInt(txtEmpleadoID.getText());
String empleadoNombre = txtEmpleadoNombre.getText();
String empleadoApellido = txtEmpleadoApellido.getText();
String empleadoContacto = txtEmpleadoContacto.getText();
String empleadoDireccion = txtEmpleadoDireccion.getText();
int empleadoSalario = Integer.parseInt(txtEmpleadoSalario.getText());
miEmpleado.setEmpleadoId(empleadoId);
miEmpleado.setEmpleadoNombre(empleadoNombre);
miEmpleado.setEmpleadoApellido(empleadoApellido);
miEmpleado.setEmpleadoContacto(empleadoContacto);
int resultado = ControladorEmpleado.grabarEmpleado(miEmpleado);
if (resultado == 1) {
JOptionPane.showMessageDialog(null, "Nuevo empleado registrado.");
} else {
JOptionPane.showMessageDialog(null, "No se pudo realizar el registro.", "Oopps... ", JOptionPane.ERROR_MESSAGE);
}
}
}
Me gustaría la opinión de ustedes referente al código que he puesto, si estoy implementando de forma correcta MVC y DAO, donde tengo mas duda es el Controlador, adicional a esto, yo manejo un Controlador por cada DAO.
Aclaro: Como se puede observar, en el código del botón "Guardar" que se encuentra en la Vista creo un objeto de tipo Empleado, llenando sus campos con los datos que recolecto del Formulario, luego invoco al metodo correspondiente del Controlador, al cual le paso como parámetro el objeto de tipo Empleado, tambien quiero decir que tengo un Controlador por cada DAO/DTO que he creado.
Valora esta pregunta
0