Foros del Web » Programación para mayores de 30 ;) » Java »

Ayuda con JSP+MYSQL

Estas en el tema de Ayuda con JSP+MYSQL en el foro de Java en Foros del Web. Hola, mi problema es que no puedo hacer una consulta jsp+mysql, quisiera hacer un select que me traiga todos los registros de mi tabla y ...
  #1 (permalink)  
Antiguo 13/03/2011, 13:03
 
Fecha de Ingreso: febrero-2009
Ubicación: mexico
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 1
Ayuda con JSP+MYSQL

Hola, mi problema es que no puedo hacer una consulta jsp+mysql, quisiera hacer un select que me traiga todos los registros de mi tabla y me los muestre en una tabla html, tengo el siguiente codigo que descubri en este blog

http://apdaza-poo.blogspot.com/2008/...ql-y-java.html

mi tabla

marcas(id_marca,nombre,descripcion)

mis clases son las siguientes

Código:
Co/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;

/**
 *
 * @author Juan Carlos
 */
import java.sql.*;

public class DBConexion {
    static String bd="siscc";
    static String usuario="root";
    static String password="220785";
    static String url="jdbc:mysql://localhost/"+bd;

    Connection conexion = null;

   public DBConexion() {
        try{
                Class.forName("com.mysql.jdbc.Driver");
                conexion = DriverManager.getConnection(url,usuario,password);

                if (conexion!=null){
                        System.out.println("Conexión a base de datos "+bd+" OK");
                }
        }catch(SQLException e){
                System.out.println(e);
        }catch(ClassNotFoundException e){
                System.out.println(e);
        }
    }

    public Connection getConexion(){
        return conexion;
    }

    public void desconectar(){
        conexion = null;
    }
}
Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;

/**
 *
 * @author Juan Carlos
 */
public class Marcas {
    int id_marca;
    String nombre;
    String descripcion;

    public Marcas(){

    }
    public int getId_marca(){
        return id_marca;
    }
    public void setId_marca(int id_marca){
        this.id_marca=id_marca;
    }
    public String getNombre(){
        return nombre;
    }
    public void setNombre(String nombre){
        this.nombre=nombre;
    }
    public String getDescripcion(){
        return descripcion;
    }
    public void setDescripcion(String descripcion){
        this.descripcion=descripcion;
    }
}
Código:
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Clases;

/**
 *
 * @author Juan Carlos
 */
import java.sql.*;

public class DBMarcas {
    int id_marca;
    String nombre;
    String descripcion;

    DBConexion cn;

    public DBMarcas()
    {
        cn = new DBConexion();
    }

     public Marcas getMarcasById(int id_marca){
        Marcas c = new Marcas();
        try{
            PreparedStatement pstm = cn.getConexion().prepareStatement(
                                        "SELECT id_marca, " +
                                        " nombre, " +
                                        " desripcion, " +
                                        " WHERE id_marca = ? ");
            pstm.setInt(1, id_marca);

            ResultSet res = pstm.executeQuery();
            if(res.next()){
                c.setId_marca(res.getInt("id_marca"));
                c.setNombre(res.getString("nombre"));
                c.setDescripcion(res.getString("descripcion"));
            }
            res.close();

        }catch(SQLException e){
            System.out.println(e);
        }
        return c;
    }
    public Marcas[] getMarcas(){
        int registros = 0;

        try{
            PreparedStatement pstm = cn.getConexion().prepareStatement(
                   "SELECT count(1) as total" +
                   " FROM marcas ");

            ResultSet res = pstm.executeQuery();

            res.next();
            registros = res.getInt("total");
            res.close();


        }catch(SQLException e){
            System.out.println(e);
        }
        Marcas[] data = new Marcas[registros];
        try{
            PreparedStatement pstm = cn.getConexion().prepareStatement(
                               "SELECT id_marca, " +
                               " nombre, " +
                               " descripcion " +
                               " ORDER BY nombre");

            ResultSet res = pstm.executeQuery();
            int i = 0;
            while(res.next()){
                data[i] = new Marcas();
                data[i].setId_marca(res.getInt("id_marca"));
                data[i].setNombre(res.getString("nombre"));
                data[i].setDescripcion(res.getString("descripcion"));
                i++;
            }
            res.close();

        }catch(SQLException e){
            System.out.println(e);
        }
        return data;
    }
    public int insertarMarcas(Marcas c){
        int cont_marca = -1;
        int resultado = 0;//no hubo errores de validacion
        try{
            PreparedStatement pstm = cn.getConexion().prepareStatement(
                                      "SELECT COUNT(1) AS total " +
                                      " FROM marcas " +
                                      " WHERE id_marca= ? ");
            pstm.setInt(1, c.getId_marca());

            ResultSet res = pstm.executeQuery();
            res.next();
            cont_marca= res.getInt("total");
            res.close();


            if(cont_marca==0){
                pstm = cn.getConexion().prepareStatement(
                                   "INSERT INTO marcas (nombre, " +
                                   " descripcion)" +
                                   " VALUES(?,?)");
                pstm.setString(1, c.getNombre());
                pstm.setString(2, c.getDescripcion());
                pstm.executeUpdate();

                pstm = cn.getConexion().prepareStatement("SELECT last_insert_id()");
                res = pstm.executeQuery();
                res.next();
                resultado = res.getInt(1);
                res.close();
            }else{
                resultado = -2;//el login ya existe
            }
        }catch(SQLException e){
            System.out.println(e);
        }
        return resultado;
    }
    public int borrarMarcas(Marcas c){
        int resultado = 0;
        try{
            PreparedStatement pstm = cn.getConexion().prepareStatement(
                                           "DELETE FROM marcas" +
                                           " WHERE id_marca= ?");

            pstm.setInt(1, c.getId_marca());

            resultado = pstm.executeUpdate();

        }catch(SQLException e){
            System.out.println(e);
        }
        return resultado;
    }
}
la forma de utilizarlo en jsp es la siguiente

Código:
<%@ page import="java.io.*,java.util.*,java.net.*,java.sql.*" %>
<%
Clases.DBMarcas DB = new Clases.DBMarcas();
Clases.Marcas operacion = new Clases.Marcas();

/*AGREGAR */
int r=DB.insertarMarcas(operacion);
if(r>0)
{
    out.println("Marca agregada");
}
/* ELIMINAR */
operacion.setId_marca(2);
int borrar=DB.borrarMarcas(operacion);
if(borrar>0)
{
    out.println("Marca borrada");
}
%>
ahora el problema es que no se como hacer la consulta general de todos los registros de la tabla, en el codigo del blog aparece esto

Código:
public void llenarTablaCitas(){
        limpiarTablaCitas();
        citas = dbcit.getCitas();
        for(int i=0;i<citas.length;i++){
            Object[] newRow = {citas[i].getId(),
                     citas[i].getContacto().getApellido()+" "+citas[i].getContacto().getNombre(),
                     citas[i].getLugar(),
                     citas[i].getFecha(),
                     citas[i].getHora(),
                     citas[i].getAsunto()
                };
            modeloTablaCitas.addRow(newRow);
        }
    }
estoy tratando de hacer esto pero en jsp para que los datos me los muestre en una tabla html pero no puedo, alguien podria ayudarme me seria de mucha ayuda, gracias de antemano y disculpen el copy+paste, pero ya me desespero no poder hacer la consulta
  #2 (permalink)  
Antiguo 24/03/2011, 20:28
 
Fecha de Ingreso: febrero-2009
Ubicación: mexico
Mensajes: 148
Antigüedad: 15 años, 2 meses
Puntos: 1
Respuesta: Ayuda con JSP+MYSQL

Alguien podria ayudarme por favor, necesito esto para realizar un proyecto de mi escuela
  #3 (permalink)  
Antiguo 25/03/2011, 02:54
 
Fecha de Ingreso: febrero-2008
Ubicación: Sevilla
Mensajes: 91
Antigüedad: 16 años, 2 meses
Puntos: 15
Respuesta: Ayuda con JSP+MYSQL

Estas usando preparedStatement. No se si sabes que java de forma automatica hace que las conexiones sean Statement. Para hacer preparedStatement debes indicarselo a la conexion, si no tus consultas no funcionaran.

Por otro lado, he visto un error en el metodo desconectar(); Para terminar la conexion, se hace un conexion.close(); Si pones a null la conexion, lo unico que estas poniendo a null es la variable que recoje esa conexion, no estas cerrando la conexion. Al menos creo que es asi.

Un saludo!
  #4 (permalink)  
Antiguo 25/03/2011, 08:28
Avatar de sivadmp  
Fecha de Ingreso: febrero-2011
Ubicación: La Paz - Bolivia
Mensajes: 293
Antigüedad: 13 años, 2 meses
Puntos: 20
Respuesta: Ayuda con JSP+MYSQL

en vez de preparedStat... utiliza Statement


Código java:
Ver original
  1. Statement sta = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
  2.                 ResultSet.CONCUR_READ_ONLY);
  3.  
  4. ResultSet rs = sta.executeQuery(query);
__________________
agradecer no cuesta nada
Entre más información proporciones más fácil será ayudarte, y asi evitar adivinar el problema con el que cuentas.

Etiquetas: Ninguno
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:29.