Buscar
Social
Ofertas laborales ES

Foro sobre Java EE > recoger dato de lista desplegable y guardar en tabla en mysql

Hola buenas tardes,
mira, a ver si me puedes ayudar por favor con un tema porque no me sale. Es con java y mysql workbench.
Simplemente he creado una pequeña aplicación web que consiste en un .jsp tan sencillo como este:
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Casos de prueba</title>
</head>

<center><h1>Elije un caso de prueba</h1></center>
<form name="insertar" action="guardar" method="post">
<center>
<select id="opciones" name="opciones">
<option value="1"> -Elija una opción-</option>
<option value="2">opción 1</option>
<option value="3">opción 2</option>
</select>
</center>


<center></center>
</form>

</html>


Si lo ejecutas verás que he creado una lista de selección. Pues bien,
ahora lo que quiero hacer es elegir una opción de la lista de selección y
que ese dato se me guarde en una tabla de una base de datos que ya
tengo creada. Y ahí está mi problema. No se como guardar el dato en la BD.


Me he creado una clase.java y ahí he puesto el código siguiente para hacer la conexión
con la base de datos y el insert.

En Mysql tan sólo tengo en mi base de datos "prueba" una tabla llamada "datos" con dos columnas: iddatos, datos.


package operaciones;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.útil.ArrayList;
public class guardar {
private String driver, cadenacon;
public guardar(String driver, String cadenacon){
this.driver=driver;
this.cadenacon=cadenacon;
}
private Connection obtenerConexion(){
Connection con=null;
try{
Class.forName("com.mysql.jdbc.Driver");
con=DriverManager.getConnection("jdbc:mysql://localhost:3306/prueba","root","password");
}
catch(ClassNotFoundException e){
}
finally{
return con;
}
}
private void cerrarConexion(Connection con){
try{con.close();}
catch(SQLException e){}
}
public boolean validar(String user, String pwd){
Connection con;
Statement st;
ResultSet rs;
boolean resultado=false;
try{
String sql="INSERT into datos (iddatos, datos) VALUE(?,?)";
con=this.obtenerConexion();
st=con.createStatement();
rs=st.executeQuery(sql);
if(rs.next()){
resultado=true;
}
}
catch (Exception e){}
finally{ return resultado;}
}
}
Sin embargo, no se me guarda nada en la BD. Como lo puedo hacer? me puedes ayudar por favor? Muy agradecida de antemano.

junio 2, 2014 | Unregistered CommenterSuasna

Lee este tutorial: http://docs.oracle.com/javase/tutorial/jdbc/basics/prepared.html
porque estás usando un PreparedStatement como si fuese un Statement

http://docs.oracle.com/javase/7/docs/api/java/sql/PreparedStatement.html
http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html

junio 2, 2014 | Registered Commenterchoces

El hecho de que estés ignorando las excepciones tampoco ayuda, ya que no puedes ver el error que se está produciendo.

En las expresiones de tipo
catch (Exception e){}

Pon al menos:
catch (Exception e){
e.printStackTrace();
}

Un saludo

junio 2, 2014 | Unregistered CommenterUnoPorAhi