recientemente estoy entrando a esta parte de desarrollo web con Java y tengo un problema con un ejercicio que he creado, no sé a que se deba. Lo he chequeado todo y no encuentro el error. Aquí el código:
En la base de datos:
create database tienda
create table articulos(
id int primary key auto_increment,
nombre varchar(35),
cantidad int,
categoria varchar(35)
)
DELIMITER $
create procedure reg_pro(IN nombre varchar(35),IN cantidad int,IN categoria
varchar(35))
begin
insert into articulos(nombre,cantidad,categoria)
values(nombre,cantidad,categoria);
end $
El formulario de entrada:
<form action="acciones.jsp">
<table border="1">
<tr>
<td>Nombre</td>
<td><input type="text" name="txtNombre"></td>
</tr>
<tr>
<td>Cantidad</td>
<td><input type="text" name="txtCantidad"></td>
</tr>
<tr>
<td>Categoria</td>
<td><input type="text" name="txtCategoria"></td>
</tr>
<tr>
<td><input type="submit" value="Registrar"></td>
<td><input type="reset" value="Limpiar"></td>
</tr>
</table>
</form>
El formulario envía la información a acciones donde tengo: (si he importado la clase Libreria de otro paquete)
<body>
<h1>Registrando Producto</h1>
<%
Libreria l=new Libreria();
String nom=request.getParameter("txtNombre");
int can=Integer.parseInt(request.getParameter("txtCantidad"));
String cat=request.getParameter("txtCategoria");
l.inserta(nom,can,cat);
%>
</body>
para que finalmente llame al método inserta de Libreria y es donde me marca que recibe datos vacíos:
public class Libreria {
private Connection cnx;
String driver="com.mysql.jdbc.Driver";
String cadena="jdbc:mysql://localhost/tienda";
String usuario="root";
String clave="";
public Libreria(){
try{
Class.forName(driver);
cnx=DriverManager.getConnection(cadena,usuario,clave);
}catch(ClassNotFoundException e1){
}catch(SQLException e2){
}
}
public void inserta(String nombre, int cantidad, String categoria){
try{
CallableStatement sen=cnx.prepareCall("CALL reg_pro(?,?,?)");
sen.setString("nombre",nombre);
sen.setInt("cantidad",cantidad);
sen.setString("categoria",categoria);
sen.execute();
}catch(Exception e3){
JOptionPane.showMessageDialog(null,e3);
}
}
Sé que parece muy extenso pero agradecería la ayuda de quien me apoye, gracias :). link para descargar mi proyecto: https://drive.google.com/drive/folders/1tiVwS66S2V_pcN9IUERFRbQ8j2KlAQfq?usp=sharing