Hello, I am trying to insert a user and I can not specify it. I do not find error in the code, however it is not achieved.
JSP FORM:
<form action="operador" method="post">
<input id="nombre" type="text" name="nombre"
class="validate">
<input id="apellido" type="text" name="apellido" class="validate">
<input id="rut" type="text" name="rut" class="validate">
<input id="email" type="email" name="email" class="validate">
<input id="telefono" type="number" name="telefono" class="validate">
<input id="username" type="text" name="username" class="validate">
<input id="password" type="password" name="password" class="validate">
<input type="hidden" name="level" value="2" id="level" class="validate">
<button class="btn waves-effect waves-light" type="submit" name="action">GUARDAR
</button>
<button class="btn waves-effect waves-light" type="reset" name="action">BORRAR DATOS
</button>
<button class="btn waves-effect waves-light" type="submit" name="action">CANCELAR
</button>
</form>
THE USER'S CONTROLLER IS THE FOLLOWING
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//int idUsuario = Integer.parseInt(request.getParameter("idUsuario"));
//ES AUTOINCREMENTABLE EN LA BASE DE DATOS , NO SE NECESITA
String nombre = request.getParameter("nombre");
String apellido = request.getParameter("apellido");
String rut = request.getParameter("rut");
String username = request.getParameter("username");
String password = request.getParameter("password");
String email = request.getParameter("email");
int telefono = Integer.parseInt(request.getParameter("telefono"));
int level = Integer.parseInt(request.getParameter("level"));
Usuario operador = new Usuario(0);
//operador.setIdUsuario(idUsuario);
// NO RECIBE PARAMETRO
operador.setNombre(nombre);
operador.setApellido(apellido);
operador.setRut(rut);
operador.setUsername(username);
operador.setPassword(password);
operador.setEmail(email);
operador.setTelefono(telefono);
operador.setLevel(level);
System.out.println(operador);
DbConnection conn = new DbConnection();
OperadorDao operadorDao = new OperadorDao(conn);
boolean status = operadorDao.insert(operador);
//Preparamos un mensaje para el usuario
String msg = "";
if(status){
msg = "El operador fue creado correctamente.";
}else{
msg = "Ocurrio un error. El operador no fue creado.";
}
conn.disconnect();
RequestDispatcher rd;
//Compartiomos la variable msg para poder accederla desde la vista con Expression Language
request.setAttribute("message", msg);
rd = request.getRequestDispatcher("/mensaje.jsp");
rd.forward(request, response);
}
DAO CLASS WITH INSERT FUNCTION (INSERT IN DATABASE)
public class OperadorDao {
DbConnection conn;
public OperadorDao(DbConnection conn) {
this.conn = conn;
}
//Método para insertar registro de operadores
public boolean insert(Usuario operador){
String sql = "insert into usuario (nombre,apellido,rut,email,username,password,telefono,level)values (?,?,?,?,?,?,?,?)";
try {
PreparedStatement ps = conn.getConnection().prepareStatement(sql);
ps.setString(1, operador.getNombre());
ps.setString(2, operador.getApellido());
ps.setString(3, operador.getRut());
ps.setString(4, operador.getEmail());
ps.setString(5, operador.getUsername());
ps.setString(6, operador.getPassword());
ps.setInt(7, operador.getTelefono());
ps.setInt(8, operador.getLevel());
ps.executeUpdate();
return true;
} catch (SQLException ex) {
return false;
}
}
}
NOTES:
- The user ID is autoincrementable
- All values are received but not inserted
I hope you can help me, I remain attentive to your answers. Greetings.