A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

CRUD: lectura de datos

12/25
Recursos

Aportes 27

Preguntas 4

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Lo hice un poco mas visual usando JFORM, y este fue el resultado鈥(en lo personal鈥e gusto mucho)



Buen d铆a profesor. La capa DAO es la que est谩 ejecutando la lectura de la base de datos y a su vez es la que est谩 ejecutando los prints de los datos obtenidos. Estos prints deber铆an ser ejecutados por la capa de servicio para mantener la consistencia de lo que estamos programando. Para ello debemos generar en la capa DAO un arraylist de objetos mensajes y enviarlos a la capa de servicio, y aqu铆 ejecutar el while para hacer los prints.

Por lo tanto, es falsa su afirmaci贸n que 鈥渉emos aprendido a leer los datos de una base de datos a trav茅s de nuestra capa DAO y enviarlos a nuestra capa de servicio鈥. Solo los lee y imprime en la capa DAO.

Lamentablemente al momento de imprimir los datos en pantalla desde Mensajes DAO ha roto la metodologia en capas. Acaso no es Inicio.java la que interactua con el usuario?

Me parece o se repite la parte del video donde pone el codigo leerMensajesDAO

No se ustedes muchachos鈥 Pero para mi es emocionante ver este tipo de trabajos funcionando en mi computadora jejej.

Muy chevere la clase!!!
Gracias Profe!!!

Es muy importante siempre cerrar los objetos para que no quede ese espacio en memoria. Ahorita no ven la diferencia, pero en proyecto a gran escala cada objeto no cerrado adecuadamente hace lenta la aplicacion.

Lo cerramos con el metodo close.

while(rs.next()){
System.out.println("ID: " + rs.getInt(1));
System.out.println("Mensaje: " + rs.getString(2));
System.out.println(鈥淎utor: " + rs.getString(3));
System.out.println(鈥淔echa: " + rs.getString(4));
System.out.println(鈥漒n鈥);

        }

pueden colocar numeros que correspondan al numero de la columna que son cuatro.

Atenci贸n producci贸n. El procedimiento de creaci贸n de la clase leerMensajesDB se ha repetido nuevamente desde el minuto 1:29 generando la sensaci贸n de confusi贸n.

Esta fue mi soluci贸n para leer los diferentes mensajes dentro de la base de datos

dentro de la clase messagesServices

static void messagesList(){
        System.out.println("---------------------------------");
        System.out.println("MESSAGE");
        ArrayList<Messages> messages = MessagesDAO.readMessage();

        for (Messages message:messages) {
            System.out.println("id: " + message.getMessageId());
            System.out.println("Message: " + message.getMessage());
            System.out.println("Author: " + message.getMessageAuthor());
            System.out.println("Date: " + message.getMessageDate());
        }
    }

y dentro de la clase MessagesDAO

public static ArrayList<Messages> readMessage(){
ConnectionToDB connectionToDB = new ConnectionToDB();
 ArrayList<Messages> messages = new ArrayList<Messages>();
        try {
            Connection connection = connectionToDB.getConnection();

            String sql = "SELECT * FROM messages";

            PreparedStatement preparedStatement =             connection.prepareStatement(sql);
            ResultSet rs = preparedStatement.executeQuery();

            while (rs.next()){
                Messages message = new Messages();
                message.setMessageId(rs.getInt("id_message"));
                message.setMessage(rs.getString("message"));
                message.setMessageAuthor(rs.getString("autor"));
                message.setMessageDate(rs.getDate("date"));
                messages.add(message);
            }

        } catch (SQLException e){
            e.printStackTrace();
            System.out.println(e);
        }
        return messages;
    }

Se le mezclaron las capas puede ser? La parte de mostrarlo no deber铆a hacerlo en MensajesService?

Un saludo para todas las personas que ven este video, actualic茅 el proyecto en mi repositorio de github con buenas pr谩cticas.

El objeto conexion, teniendo en cuenta que se usa en mas de un llamado鈥o seria mejor dejarlo static? para el alcance de los metodos de esa clase?

Estupenda clase instructor Santiago, se entienden claramente los pasos a seguir para desarrollar el m茅todo de lectura de datos.

Me encanto esta clase!!!

CRUD
C -> Create
R -> Read
U -> Update
D -> Delete

Si a alguien le dio error en lo de la fecha se puede realizar lo siguiente, mejorando un poco m谩s el c贸digo:

Esta es la parte de la inserci贸n de datos. (MensajesDAO.java)

String sql = "INSERT INTO mensajes (mensaje, autor_mensaje, fecha_mensaje) VALUES ('"+ mensaje.getMensaje() + "', '"+ mensaje.getAutorMensaje() +"', '"+ mensaje.getFechaMensaje() +"') ";
				statement = conexion.prepareStatement(sql);
				statement.execute(sql);
				System.out.println("Mensaje creado correctamente");

Hay que modificar la fecha en la clase de Mensajes.java

private LocalDateTime fechaMensaje;

// getters and setters
public LocalDateTime getFechaMensaje() {
		return fechaMensaje;
	}
	public void setFechaMensaje(LocalDateTime fechaMensaje) {
		this.fechaMensaje = fechaMensaje;
	}

Y en MensajesServices.java

Mensajes registro = new Mensajes();
		registro.setMensaje(mensaje);
		registro.setAutorMensaje(nombre);
		registro.setFechaMensaje(LocalDateTime.now());
		MensajesDAO.crearMensajeDB(registro);

Tambi茅n a la hora de listar se utiliza lo siguiente, para que la fecha aparezca tal cual.

System.out.println("Fecha: " + rs.getTimestamp("fecha_mensaje").toLocalDateTime());

Para solucionar que la capa DAO no se encargue de mostrar los mensajes sino esto lo haga la capa de servicio hice que el metodo listarMensajesDB() devolvier谩 un ArrayList<Mensajes> y que dentro en lugar de imprimir el contendio de rs se creara un mensaje y se almacenara en el arraylist.

Asi luego se recibia ese arraylist en la capa de servicio y se muestra como uno desee.

Me encanta todo el curso, muchas gracias

Excelente curso esta super explicado

Listo!

Genial.

Listo 馃槂

muy Buena Clase

馃槃 me quedo con esto de la persistencia de datos we q interesant

Excelente, nose porque tenia la noci贸n de que java iba a devolver un arreglo (que lo hace) y tocar铆a recorrerlo con foreach, desconoc铆a esta funci贸n.

Llegando a ver los datos, pero siento que algunas explicaciones se contradicen con otros cursos.

como que se repite lo de leer mensaje