Corregimos fallos del código que llevamos hasta ahora en la aplicación.

Para más cursos, ejercicios y manuales visita: http://www.pildorasinformaticas.com

source

1 Comentario

  1. Muchas Gracias , excelente explicación como siempre. Me gustaría que viéramos el portón MVC ya que estamos haciendo aplicaciones pequeñitas y tocando sus dentistas capas , Esta bien acostumbrar nos a este patrón. Gracias por el esfuerzo y el tiempo que dedicas a compartir tus conocimientos.

  2. El copy paste a veces es muy traicionero jeje. Para la gente que pite el patrón MVC, creo que sería más lógico que empezará con el DAO (ya que estamos viendo el JDBC).

    Pero vamos, esto es como todo, como empiece también con patrones etc … morirá youtube y Juan seguirá subiendo vídeos de Java (me refiero a que Java es un mundo a parte debido a todo lo que almacena)

  3. estoy viendo sus videos muy buenos.. queria saber si me podia ayudar con un programa.. es sobre hilos,,, que sea una imagen gif q aga un recorrido y simular q coma otras imagenes .. y al final del recorrido la img cambie x otra imagen tipo jpg… saludos desde Mexico…

  4. me parece o debia ser el tutorial número 208? , el mejor tutorial de java y mas completo que estoy llevando de forma free, espero continues con el uso de framework spring, hibernate, strut, jee, junit igual gracias por enseñarnos.
    Saludos

  5. Excelente trabajo amigo, he seguido el curso desde el principio, te felicito por impartir tus conocimientos. Una pregunta creo que falto subir el video 208. igual empece a realizar las modificaciones pero a la hora de realizar los filtros entre seccion y paises no me arroja nada. podras ayudarme. gracias

  6. Hola en el video que hiciste acerca del try y catch mencionaste que se tenía que cerrar la base de datos y tal vez no he puesto la suficiente atención pues sólo he visto que cierras el resultset no es necesario cerrar la dB
    Muchas gracias por los vídeos

  7. una pregunta… en algun momento puedes hacer algun/os video(s) sobre hibernate? la mayoria que me he encontrado son de versiones 3.0 o asi y a dia de hoy algunas cosas estan deprecated. no hace falta que sea ahora mismo pero tenerlo en concideracion gracias.

  8. En relación al Ejercicio, orgulloso estoy de que siempre he ido en la práctica por delante y me ha funcionado a la primera 😀
    Y en relación a lo que comenta algún usuario o compañero, si es verdad que los últimos Vídeos están desordenados en la lista de reproducción y es un poco lioso, pero vamos que aquí estamos y con una buena sobredosis de Vídeos como siempre.

  9. Muchas gracias Juan por el video, una consulta, a la hora de preparar la consulta en el caso de que queramos seleccionar Todos no cabría la posibilidad de hacer algo parecido a esto:

    PreparedStatement pstmnt = link.prepareStatement("SELECT idproducto, nombreproducto FROM productos WHERE proveedor LIKE ? AND categoría LIKE ?");
    if (cboxProveedor.getSelectedIndex() == 0) {
    pstmnt.setString(1, "*"); // he aquí la cuestión
    } else {
    pstmnt.setString(1, (String) cboxProveedor.getSelectedItem());
    }

  10. Hola, queremos realizar un proyecto en colaboracion con usted, un proyecto con una gran salida al comercio desde su inicio. Por favor, siguenos en Twitter y nombranos en un tweet diciendo que eres el programador al cual hemos buscado. Te seguiremos y hablaremos por Md de twitter

  11. igual me sale el error en el segundo setString() cuando coloca el 2 me da error

    else if (!seccion.equals("Todos") && !pais.equals("Todos")){

    enviaConsultaTodos = miConexion.prepareStatement(consultaTodos);

    enviaConsultaTodos.setString(1, seccion);

    enviaConsultaTodos.setString(2, pais);

    rs = enviaConsultaTodos.executeQuery();

    }

  12. Perfecto, yo lo hice de una manera más modularizada creo que más limpia aunque quizá con el patrón MVC que expliques en los próximos videos que todavía no he visto lo empiezas a separas en capas. Y también contemplé el caso en que el usuario deje los dos combos seleccionados en "Todos". Utilicé 4 ficheros. Usé patrón DAO también:

    fichero InterfazGrafica.java:

    package filtradoProductos;

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.util.ArrayList;

    import javax.swing.*;

    public class InterfazGrafica {

    public static void main(String[] args) {
    (new MarcoFiltrado()).setVisible(true);

    }

    }

    class MarcoFiltrado extends JFrame {
    public MarcoFiltrado(){

    setTitle("Consulta Productos");
    setBounds(400,200,400,400);

    JPanel consultaProductos=new JPanel();

    consultaProductos.setLayout(new BorderLayout());

    JPanel panelSuperior = new JPanel();

    secciones = new JComboBox<String>();
    paises = new JComboBox<String>();

    panelSuperior.add(secciones);
    panelSuperior.add(paises);

    consultaProductos.add(panelSuperior,BorderLayout.NORTH);

    productos = new JTextArea();
    JScrollPane sp = new JScrollPane(productos,JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED,JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);

    productos.setEditable(false);

    consultaProductos.add(sp, BorderLayout.CENTER);

    JButton consultar = new JButton("Consulta");

    consultaProductos.add(consultar, BorderLayout.SOUTH);

    add(consultaProductos);

    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    llenarComboSecciones();
    llenarComboPaises();

    consultar.addActionListener(new ActionListener(){

    @Override
    public void actionPerformed(ActionEvent e) {
    ArrayList<ProductoDTO> productosFiltrados = ProductosDAO.filtrar((String) secciones.getSelectedItem(),(String) paises.getSelectedItem());
    StringBuilder prods=new StringBuilder();
    for(ProductoDTO p:productosFiltrados){
    prods.append(p.getNombre());
    prods.append(", ");
    prods.append(p.getSeccion());
    prods.append(", ");
    prods.append(p.getPrecio());
    prods.append(", ");
    prods.append(p.getPaisDeOrigen());
    prods.append("n");
    }

    productos.setText(prods.toString());

    }

    });

    }

    private void llenarComboPaises() {
    paises.addItem("Todos");
    for(String s:ProductosDAO.buscar("PAÍSDEORIGEN")){
    paises.addItem(s);
    }

    }

    private void llenarComboSecciones() {
    secciones.addItem("Todos");
    for(String s:ProductosDAO.buscar("SECCIÓN")){
    secciones.addItem(s);
    }

    }

    JComboBox<String> secciones, paises;
    JTextArea productos;

    }

    fichero Conexion.java:

    package filtradoProductos;

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.SQLException;

    public class Conexion {

    public static Connection getConnection(){

    try {
    return DriverManager.getConnection("jdbc:mysql://localhost:3306/curso_sql","root","");
    } catch (SQLException e) {
    e.printStackTrace();
    return null;
    }
    }

    public static void closeConnection(Connection conexion){
    try{
    conexion.close();
    } catch(SQLException e){
    e.printStackTrace();
    }

    }
    }

  13. Ésta ha sido mi forma de ver el ejercicio:

    PreparedStatement ps = con.prepareStatement("SELECT CÓDIGOARTÍCULO, SECCIÓN, NOMBREARTÍCULO, PAÍSDEORIGEN FROM PRODUCTOS WHERE SECCIÓN LIKE ? AND PAÍSDEORIGEN LIKE ?");//Nótese que he usado el 'LIKE'

    if (!secciones.getSelectedItem().equals("Todos") ) {
    ps.setString(1, secciones.getSelectedItem().toString());
    }else {
    ps.setString(1, "%");
    }

    if (!paises.getSelectedItem().equals("Todos") ) {
    ps.setString(2, paises.getSelectedItem().toString());
    }else {
    ps.setString(2, "%");
    }

    No se si el uso del LIKE con comodin afectaría el rendimiento, pero queda un código más limpio

  14. SALUDOS.
    Importante mensaje del video 210:
    A veces la máquina virtual de Java no actualiza automáticamente las librerías traduciéndose en marcas de error sobre nuestro código en el compilador.
    Se puede proceder manualmente:
    1.- Pulsar sobre el proyecto con el botón derecho.
    2.- Elegir 'properties'.
    3.- Elegir 'Java build path'.
    4.- Observar error en la biblioteca.
    5.- Elegir 'Edit'.
    6.- Elegir la JRE por defecto.
    7.- Elegir 'Finish'.
    8.- Elegir 'Ok'.

  15. Falta la opción en los combos, Todos y Todos, agregué un else if como sigue pero no funciona:

    else if(Categoria.equals("Todos")&&Productos.equals("Todos")) {}

    private PreparedStatement enviaConsultaTodos2;

    private final String consultaTodos2="select codProducto, nomProductos, nomCategoria, desProductos, preUnidad from tb_producto nomCategoria='Todos' and desProductos='Todos'";

Dejar respuesta

Please enter your comment!
Please enter your name here