public List<Producto> getProductos() {
        Connection connection = null;
        Statement  stmt       = null;
        ResultSet  rs         = null;

        try {
            connection = pool.getConnection();
            stmt       = connection.createStatement();
            rs         = stmt.executeQuery("select id,descripcion,costo,existencias,precio,utilidad,codigo from omoikane.ramcachearticulos");

            List<Producto> productos = new ArrayList<Producto>();
            while(rs.next()) {

                try {
                    final Producto p = new Producto();

                    p.setId(rs.getLong("id"));
                    p.setDescripcion(rs.getString("descripcion"));
                    p.setCosto(rs.getBigDecimal("costo"));
                    p.setExistencias(rs.getBigDecimal("existencias"));
                    p.setPrecio(rs.getBigDecimal("precio"));
                    p.setUtilidad(rs.getBigDecimal("utilidad"));
                    p.setCodigo(rs.getString("codigo"));
                    productos.add(p);

                }  catch (SQLException e) {
                    e.printStackTrace();
                }
            }

            return productos;
        } catch (Exception e) {
            Logger.getLogger(ExtractorOmoikane.class).error("Error extrayendo productos de omoikane", e);
        } finally {
            try {
                if(rs         != null) rs.close();
                if(stmt       != null) stmt.close();
                if(connection != null) connection.close();
            } catch (SQLException e) {
                Logger.getLogger(ExtractorOmoikane.class).error("Error al cerrar conexiones", e);
            }
        }

        return null;
    }