Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - manolazo

#1
Hola compañero.

AL final he eliminado la tabla, y me he creado otra y ahora si funciona.

No se que podria estar mal en la tabla anterior, en un principio no habia nada anómalo pero ya funciona a la perfección.

Gracias por la ayuda!!

Un saludo.
#2
Cita de: Darhius en 26 Febrero 2013, 00:09 AM
No lo creo :P yo también lo tengo así. Ahí se mira en las caputas que hice. :/

Abres explorer o crome? o introduces los parametros cuando pulsas boton derecho - run en el servet?
Veo que a ti si te guarda los datos. No entiendo que me falla, en fin ... .
#3
PErdon perdon, edito.

Darhius tu no lo estas tomando los datos por parámetro, estas metiendolos directamente asignando el valor a la variable y por eso te funciona.

Como hay que hacerlo es pasando los datos por el localhost a traves del navegador!!.
En mi caso seria introduciendo la siguiente direccion:
http://localhost:8080/WebApplication5_ServletSQL/ServletController?isbn=1547&titulo=titulo2

Para ello tienes que tener instalado  un servidor tipo Tomcat.

Los parametros se recogen en el metodo processRequest de la manera que siguiente:

            String isbn= request.getParameter("isbn");
            String titulo = request.getParameter("titulo");           


Mira a ver si te funciona asi.

Un saludo.

#4
Cita de: Darhius en 25 Febrero 2013, 23:27 PM
Men tienes algo raro xD el code funciona bien.
Una pregunta tonta, entonces si no tienes una forma mostrar o imprimir resutlados como si fuera un System.out.println();
Como sabes que tu conexión es correcta?, yo cambié los valores de mi conexión y se ejecutó, no envio mensaje en ninguna salida del navegador y repito no sé servlets por eso mi duda.

https://docs.google.com/file/d/0B1qtAELJkgilaEhibVN4ODN4STg/edit?usp=sharing

EDITO: Me refiero a que primero ejecuté el programa y se ingresaron los datos a la DB después cambié la contraseña de la conexion y abrio el navegador y obviamente ya no insertó nada pero ¿Como saber cuando se está conectando correctamente a la DB?.

Saludos.

Joder, a ti si te pilla los datos en MySQL con el mismo codigo que yo uso.

Por que a mi no?
Tengo la tabla bien creada y la conexion sé que funciona porque si uso una clase parecida a DonVidela sin usar Scriptlet , los datos los introduce de forma correcta con lo cual , conexion hay.
Será algo del explorer o del crome?
No se que puede ser
#5
Cita de: DonVidela en 25 Febrero 2013, 19:52 PM
Coloca una excepcion general, solo veo 3 tipos de excepciones y que pasa si no se cumple ninguna?

completa con otro catch(Exception e)

Hola, He puesto otro catch como dices y cuando se introducen los parametros no se lanza ningun tipo de error ni exception , y cuando voy al workbench de mysql y actualizao no aparecen los datos insertados.
Que puede haber mal? es que todo parece correcto, es un código muy sencillo!!.  ¿donde estara el error???
#6
Sorry, no me di cuenta, Ya esta editado.

Ya me gustaría pero por ahi no viene el error porque si no, me lanzaria una excepcio y no me lanza nada.

Seguimos igual...
#7
Hola,

En el servlet no va el System.out.println() ya que no muestra el resultado por consola, no es como una clase normal.

La insercion es exitosa si me creo una clase sin usar servlet con lo cual, no entiendo donde anda el error.


#8
Cita de: Darhius en 25 Febrero 2013, 18:47 PM
No he trabajado con serlevt pero puedes intentar con lo siguiente:

1. Guarda tu query en una variable:
Código (java) [Seleccionar]

String queryInsert = "INSERT INTO table....";


2. Muestra o imprime el resultado de tu string-query

3. Ejecuta directamente en la consola o gui el resultado de tu string-query.

Tambien revisa la conexión con la base de datos, revisa tus excepciones para ver si te arroja alguna.


Saludos.

Hola , gracias por contestar.

Perdona la ignoracia pero no se muy bien como mostrar o imprimir el resutado del string-query. Te refieres a poner un Syste.out?
La conexion de la base de datos es correcta.
Como te digo la logica del programa creo que es muy sencilla pero no veo donde puede andar el error.
gracias
#9
Hola.

Estoy mirando como va todo esto de JSP y servlets para principiantes, he buscado informacion y a la hora de practicar quiero hacer lo siguiente.

Utilizo Netbeans y he instalado un servidor MySQL . Tambien uso apache TOmcat

Quiero insertar unos datos a traves de un servlet en java en una tabla de la siguiente manera:

Primero me creo un nuevo proyecto WebServices a traves de Netbeans e instalo el conector mysql-connector-java-5.1.23-bin.jar en la libreria

A continuacion me creo una clase de java que establece la conexion con la base de datos:


package ejemplo1.Services;

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


public class Conexion {
   
   public static Connection getConnection() throws ClassNotFoundException, SQLException{
       Connection databaseconnection = null;      
        Class.forName("com.mysql.jdbc.Driver");
        databaseconnection = DriverManager.getConnection("jdbc:mysql://localhost/prueba2", "root", "pepe");        
       return databaseconnection;      
   }    
}



Luego me creo un servlet. Lo que quiero es recoger los datos que introduzco por la barra de navegador y se me guarden en la base de datos.

Es decir, de esta manera: http://localhost:8080/WebApplication5_ServletSQL/ServletController?isbn=1547&titulo=quijote


@WebServlet(name = "ServletController", urlPatterns = {"/ServletController"})
public class ServletController extends HttpServlet {

   /**
    * Processes requests for both HTTP
    * <code>GET</code> and
    * <code>POST</code> methods.
    *
    * @param request servlet request
    * @param response servlet response
    * @throws ServletException if a servlet-specific error occurs
    * @throws IOException if an I/O error occurs
    */
   protected void processRequest(HttpServletRequest request, HttpServletResponse response)
           throws ServletException, IOException {
     
           String isbn= request.getParameter("isbn");
           String titulo = request.getParameter("titulo");            
                 
           try {                
               
                            Connection conn = Conexion.getConnection();  
                            PreparedStatement pst= conn.prepareStatement("INSERT INTO libro VALUES(?,?)");
                            pst.setString(1, isbn);
                            pst.setString(2, titulo);                            
                            pst.execute();

               }catch (ClassNotFoundException |SQLException ex){
                    ex.printStackTrace();
                }            
     
   }
   // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
 


La base de datos esta bien, todo esta bien implementado, es tan sencillo que no necesita de más. Pero por alguna extraña razon no se guardan los parametros en la base de datos.

Alguna idea?.
Un saludo.
#10
Hola.

La única forma que venia era hacer una instancia de la claseA , pero claro eso complica las cosas porque se vuelve a formar otro objeto de la claseB y asi siempre lanzandose un StackOverFlow error.

Muchisimas gracias por la aclaración ya que simplifique el código de una parte mas grande que me tenia comida la cabeza en algo tan sencillo. Está claro que todavía me falta mucho por aprender.

Lo dicho muchas gracias por tomarte el interés de ayudarme. Buen foro.