When I execute the code to make me delete, update, or addUser, I get a null error in some String, as a user or password.
I show you my MySQL.
SHOW CREATE TABLE 'curso'.'usuarios';
id, user, name, surname, email, password, type, course.
This is my UserController
package com.User;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.User.dao.*;
import com.User.dao.UserDAOImplementation;
import sun.misc.Perf.GetPerfAction;
import com.User.User;
@WebServlet("/UserController")
public class UserController extends HttpServlet {
private UserDAO dao;
private static final long serialVersionUID = 1L;
public static final String lIST_USER = "/listUser.jsp";
public static final String INSERT_OR_EDIT = "/user.jsp";
public UserController() {
dao = new UserDAOImplementation();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String forward = "";
String action = request.getParameter( "action" );
if( action.equalsIgnoreCase( "delete" ) ) {
forward = lIST_USER;
String usuario= (request.getParameter("usuairo")) ;
dao.deleteUser(usuario);
request.setAttribute("user", dao.getAllUser() );
}
else if( action.equalsIgnoreCase( "edit" ) ) {
forward = INSERT_OR_EDIT;
String usuario = ( request.getParameter("usuario") );
User user = dao.getUserById(usuario);
request.setAttribute("User", user);
}
else if( action.equalsIgnoreCase( "insert" ) ) {
forward = INSERT_OR_EDIT;
}
else {
forward = lIST_USER;
request.setAttribute("user", dao.getAllUser() );
}
RequestDispatcher view = request.getRequestDispatcher( forward );
view.forward(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
User user = new User();
user.setUsuario( request.getParameter( "usuario" ) );
user.setNombre( request.getParameter( "nombre" ) );
user.setApellidos( request.getParameter( "apellidos" ) );
user.setEmail( request.getParameter( "email" ) ) ;
user.setPassword( request.getParameter( "password" ) ) ;
user.setTipo( request.getParameter( "tipo" ) ) ;
user.setCurso( request.getParameter( "curso" ) ) ;
String id = request.getParameter("id");
if( id == null || id.isEmpty() )
dao.addUser(user);
else {
dao.updateUser(user);
}
RequestDispatcher view = request.getRequestDispatcher( lIST_USER );
request.setAttribute("user", dao.getAllUser());
view.forward(request, response);
}
}
User
package com.User;
import java.util.List;
public class User {
private int id;
private String usuario;
private String nombre;
private String apellidos;
private String password;
private String email;
private String tipo;
private String curso;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getUsuario() {
return usuario;
}
public void setUsuario(String usuario) {
this.usuario= usuario;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellidos() {
return apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public String getPassword() {
return password;
}
public void setPassword(String password){
this.password = password;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTipo() {
return tipo;
}
public void setTipo(String tipo) {
this.tipo = tipo;
}
public String getCurso() {
return curso;
}
public void setCurso(String curso) {
this.curso = curso;
}
@Override
public String toString() {
return "User [id=" + id + ", usuario=" + usuario + ", nombre=" + nombre
+ ", apellidos=" + apellidos + ", email="
+ email + ", password=" + password +", tipo="
+ tipo + ", curso="
+ curso + "]";
}
public static List<User> list() {
// TODO Auto-generated method stub
return null;
}
}
And finally my Dao
package com.User.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import com.User.*;
import com.User.util.DbUtil;
public class UserDAOImplementation implements UserDAO {
private Connection conn;
public UserDAOImplementation() {
conn = DbUtil.getConnection();
}
@Override
public void addUser( User user ) {
try {
String query = "insert into usuarios (usuario, nombre, apellidos, email , password , tipo , curso) values (?,?,?,?,?,?,?)";
PreparedStatement preparedStatement = conn.prepareStatement( query );
preparedStatement.setString( 1, user.getUsuario() );
preparedStatement.setString( 2, user.getNombre() );
preparedStatement.setString( 3, user.getApellidos() );
preparedStatement.setString( 4, user.getEmail() );
preparedStatement.setString(5, user.getPassword());
preparedStatement.setString(6, user.getTipo());
preparedStatement.setString(7, user.getCurso());
preparedStatement.executeUpdate();
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void deleteUser( String usuario) {
try {
String query = "delete from usuarios where Id=?";
PreparedStatement preparedStatement = conn.prepareStatement(query);
preparedStatement.setString(1, usuario);
preparedStatement.executeUpdate();
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
@Override
public void updateUser( User user ) {
try {
String query = "update usuarios set usuario=?, nombre=?, apellidos=?, email=? , password=?, tipo=?, curso=?,where id=?";
PreparedStatement preparedStatement = conn.prepareStatement( query );
preparedStatement.setString( 1, user.getUsuario() );
preparedStatement.setString( 2, user.getNombre() );
preparedStatement.setString( 3, user.getApellidos() );
preparedStatement.setString( 4, user.getEmail() );
preparedStatement.setString(5, user.getPassword());
preparedStatement.setString(6, user.getTipo());
preparedStatement.setString(7, user.getCurso());
preparedStatement.setInt(8, user.getId());
preparedStatement.executeUpdate();
preparedStatement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public List<User> getAllUsers() {
List<User> users = new ArrayList<User>();
try {
Statement statement = conn.createStatement();
ResultSet rs = statement.executeQuery("select * from usuarios");
while (rs.next()) {
User user = new User();
user.setId(rs.getInt("id"));
user.setUsuario(rs.getString("usuario"));
user.setNombre(rs.getString("nombre"));
user.setApellidos(rs.getString("apellidos"));
user.setEmail(rs.getString("email"));
user.setPassword(rs.getString("password"));
user.setTipo(rs.getString("tipo"));
user.setCurso(rs.getString("curso"));
users.add(user);
}
} catch (SQLException e) {
e.printStackTrace();
}
for (int i = 0; i < users.size(); i++) {
}
return users;
}
public User getUserById(String usuario) {
User user = new User();
try {
PreparedStatement preparedStatement = conn.
prepareStatement("select * from usuarios where usuario=?");
preparedStatement.setString(1, usuario);
ResultSet rs = preparedStatement.executeQuery();
if (rs.next()) {
user.setId(rs.getInt("id"));
user.setUsuario(rs.getString("usuario"));
user.setNombre(rs.getString("nombre"));
user.setApellidos(rs.getString("apellidos"));
user.setEmail(rs.getString("email"));
user.setPassword(rs.getString("password"));
user.setTipo(rs.getString("tipo"));
user.setCurso(rs.getString("curso"));
}
} catch (SQLException e) {
e.printStackTrace();
}
return user;
}
@Override
public List<User> getAllUser() {
// TODO Auto-generated method stub
return null;
}
}
It gives me failures of null user.
Why can the code fail me? Right now the update and the addUser do the same to me.