elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Usando Git para manipular el directorio de trabajo, el índice y commits (segunda parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Java
| | | |-+  Meter datos en MySQL a traves de un servlet. Que esta mal?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 3 Ir Abajo Respuesta Imprimir
Autor Tema: Meter datos en MySQL a traves de un servlet. Que esta mal?  (Leído 14,992 veces)
manolazo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Meter datos en MySQL a traves de un servlet. Que esta mal?
« en: 25 Febrero 2013, 18:14 pm »

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:

Código:
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

Código:
@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.


« Última modificación: 25 Febrero 2013, 19:44 pm por manolazo » En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #1 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
  1. String queryInsert = "INSERT INTO table....";
  2.  

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.


En línea

abc
manolazo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #2 en: 25 Febrero 2013, 19:06 pm »

No he trabajado con serlevt pero puedes intentar con lo siguiente:

1. Guarda tu query en una variable:
Código
  1. String queryInsert = "INSERT INTO table....";
  2.  

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
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #3 en: 25 Febrero 2013, 19:15 pm »

xD si me refiero a un System.out.prinln() es que no sé si en servlet es igual :P

copias el resultado que te muestra en el output y lo pegas en tu consola, lo ejecutas y verifica que sea exitosa la insersión.

Saludos.
En línea

abc
manolazo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #4 en: 25 Febrero 2013, 19:19 pm »

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.


En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #5 en: 25 Febrero 2013, 19:20 pm »

Te falta un parentesis de cierre.
INSERT INTO tabla VALUES(v1,v2);

Código
  1. String isbn= request.getParameter("isbn");
  2. PreparedStatement pst= conn.prepareStatement("INSERT INTO libro VALUES(?,?");
  3.  

Quedaría así:

Código
  1. PreparedStatement pst= conn.prepareStatement("INSERT INTO libro VALUES(?,?)");
  2.  
« Última modificación: 25 Febrero 2013, 19:21 pm por Darhius » En línea

abc
manolazo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #6 en: 25 Febrero 2013, 19:45 pm »

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...
En línea

Pablo Videla


Desconectado Desconectado

Mensajes: 2.274



Ver Perfil WWW
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #7 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)
En línea

1mpuls0


Desconectado Desconectado

Mensajes: 1.186


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #8 en: 25 Febrero 2013, 19:54 pm »

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...

o.O que raro, debería enviarte una excepción de sintaxis, verifica los tipos de errores que pueden resultar y deberías buscar una forma de mostrar la consulta :P en texto plano en el output eso ayuda mucho.

Por otro lado no sé nada de servlets xD espero que alguien más te pueda ayudar.

Saludos.
« Última modificación: 25 Febrero 2013, 20:38 pm por Darhius » En línea

abc
manolazo

Desconectado Desconectado

Mensajes: 11


Ver Perfil
Re: Meter datos en MySQL a traves de un servlet. Que esta mal?
« Respuesta #9 en: 25 Febrero 2013, 21:01 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???
En línea

Páginas: [1] 2 3 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Como meter datos desde vb a excel
Programación Visual Basic
Ragde88 1 3,300 Último mensaje 11 Noviembre 2005, 09:04 am
por Slasher-K
no me funciona al meter datos en el stub?...
Programación Visual Basic
Sai-To 4 1,949 Último mensaje 6 Marzo 2008, 02:22 am
por Sai-To
Meter datos por teclado en Vbs?
Scripting
WiZZard 4 9,382 Último mensaje 22 Agosto 2010, 06:22 am
por WiZZard
Conectarme a MySQL por Servlet
Java
Aikanáro Anário 5 8,631 Último mensaje 19 Abril 2012, 15:27 pm
por lluvplay
Esta tarjeta SIM fuerza todo el tráfico de datos a través de la red Tor
Noticias
wolfbcn 0 1,144 Último mensaje 23 Octubre 2018, 14:31 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines