Erro Java lang NullPointerException

Boa tarde galera!

Encontrei um problema no meu projeto. Estou usando o Spring MVC e na ora que vou
Remover/Alterar um usuário aparece o erro descrito acima. fiz a conexão com banco certinho,
tá inserindo usuário e persistindo no banco bunitinho, mas na ora de remover ou alterar me deparo com
esse erro de “NullPointerException”.Se alguém conseguir me ajudar fico muito grato! Obrigado!

Meu Controller está assim:

@RequestMapping(“removeUsuario”)
public String remove(Usuario usuario){

	usuarioDao.remove(usuario);
	
	return "redirect: lista_usuario";
}

@RequestMapping("alteraUsuario")
public String altera(Usuario usuario){
	
	usuarioDao.altera(usuario);
	
	return "redirect: lista_usuario";
}

######################################################################
E esse é o meu DAO

public void remove(Usuario usuario){
String sql = "delete from usuario where id_usuario= ? ";
PreparedStatement stmt;
try{
stmt = connection.prepareStatement(sql);
stmt.setLong(1, usuario.getId_usuario());

		stmt.execute();
		stmt.close();
		}catch(SQLException e){
		throw new RuntimeException(e);
	}
	
}

public void altera(Usuario usuario){
	String sql = "update usuario set nome = ?, endereco = ?, telefone = ?, bairro = ?, cpf = ?, rg = ?, idade = ?, sexo = ?, email = ?, senha = ?, where id_usuario = ?";
	PreparedStatement stmt;
	try{
		stmt = connection.prepareStatement(sql);
		
		stmt.setString(1, usuario.getNome());
		stmt.setString(2, usuario.getEndereco());
		stmt.setString(3, usuario.getTelefone());
		stmt.setString(4, usuario.getBairro());
		stmt.setString(5, usuario.getCpf());
		stmt.setString(6, usuario.getRg());
		stmt.setInt(7, usuario.getIdade());
		stmt.setString(8, usuario.getSexo());
		stmt.setString(9, usuario.getEmail());
		stmt.setLong(10, usuario.getSenha());
		stmt.setLong(11, usuario.getId_usuario());
		
		stmt.execute();
		stmt.close();
	}catch(SQLException e){
		throw new RuntimeException(e);
	}

}

E fiz esse método tmb

public Usuario buscaPorId(Long id_usuario) {

	if (id_usuario == null) {
		throw new IllegalStateException("Id do usuario não deve ser nulo.");
	}

	try {
		PreparedStatement stmt = this.connection.prepareStatement("select * from usuario where id_usuario = ?");
		stmt.setLong(1, id_usuario);

		ResultSet rs = stmt.executeQuery();

		if (rs.next()) {
			return populaUsuario(rs);
		}

		rs.close();
		stmt.close();

		return null;
	} catch (SQLException e) {
		throw new RuntimeException(e);
	}
}

############################################################################

e por fim o meu jsp:

Usuários cadastrados


		<td><a href= "removeUsuario?id=${usuario.id_usuario}">Remover</a></td>
		
		<td><a href="mostraUsuario	?id=${usuario.id_usuario}">Alterear</a></td>
	
		
	</tr>
Id Nome: Endereço Telefone: Bairro: Cpf: Rg: Idade: Sexo: E-mail: Remover: Alterar:
${usuario.id_usuario} ${usuario.nome} ${usuario.endereco} ${usuario.telefone} ${usuario.bairro} ${usuario.cpf} ${usuario.rg} ${usuario.idade} ${usuario.sexo} ${usuario.email}

Remove essa vírgula antes do WHERE.
Verfica se a quantidade de parametros esta correta.
O que é esse populaUsuario(rs)?
Coloca os sets normal e faz o return normal também.

Outras coisas, no Java tem um padrão chamado camelCase, ou seja, em palavras compostas a primeira palavra começa com letra minúscula e a outras começam com letras maiúsculas isso é feito pra não haver separadores como hifen (-) ou underscore (_).

Boa tarde, lucas!

eu removi a virgula mais não mudou nada.

esse método popula usuário foi equivocado.Só uso ele para listar meus usuários.

encontrei um erro bem considerável na minha lista_usuario.jsp no link de remover/alterar:

ele estava assim:
“removeUsuario?id=${usuario.id_usuario}”>Remover

quando na verdade o “id” estava errado, tinha que ser" id_usuario".

ai blz. ele ta excluindo, mas não como queria.Quando clico em remover ele primeiro da um 404, ai eu volto, atualizo a página e o usuário está removido.
Não consigo entender por não remove e volta pra lista de usuários, pois estou usando no meu controller(removeUsuario) o redirect: lista_usuario, com isso era pra voltar bonitinho para a lista.

Veja que o mapping que altera é alteraUsuario e href você está passando mostraUsuario.

Sim! o mostraUsuario vai direcionar o id do usuário especifico para o formulário, só que este formulário já vai estar preenchido para somente ser alterado.