Não salva no banco

E aee pessoal blz?
Estou fazendo uma aplicação pequena só para testar os métodos de desenvolvimento…

Minha base esta no Oracle…
O que acontece:

Eu listo os contatos de uma tabela, seleciono um contato e altero alguma informação, salvo(update)
e não da nenhuma Exception, porem quando olho no banco não foi feita nenhuma alteração.

sério mesmo, não sei oq pode ser…
já olhei outros códigos e não vi nada de errado…

Servlet acionada para salvar…

public class SalvaUsuario extends HttpServlet implements Servlet {
   
    private static final long serialVersionUID = 1L;
    private static final String SERVLET_PATH = "./ListarUsuarios";   	 	
	
	protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		
		try{
			Long id = Long.parseLong(request.getParameter("id"));
			Connection con = ConnectionFactory.getConnection();
			DAO<Usuario> dao = new UsuarioDAO(con);
			Usuario usuario = dao.carregar(id);
			dao.salvar(usuario);
			
						
		}catch(Exception e){
			e.printStackTrace();
		}
			
		RequestDispatcher rq = request.getRequestDispatcher(SERVLET_PATH);
		rq.forward(request, response);
	}   	  	    
}

Dao que acessa a tabela para alterar os dados…


     private static final String SQL_ALTERAR = "UPDATE USUARIO SET NOME = ?, STATUS = ? WHERE USER_ID = ?";

     public void salvar(Usuario usuario) throws Exception {
		if(usuario!=null){
			if(!con.isClosed()){ //Eu forço para que ele entre nesta parte de alteração   
				stmt = con.prepareStatement(SQL_ALTERAR);
				stmt.setString(1, usuario.getNome());
				stmt.setInt(2, usuario.getStatus());
				stmt.setLong(3,usuario.getId());
				stmt.execute();
			}	
		}else{ //Nunca vai entrar aqui por enquanto...   
			   //stmt = con.prepareStatement(SQL_SALVAR);
		}
		con.commit();
		stmt.close();
		if(!con.isClosed()){
			con.close();
			System.out.println("Conexão Fechada!");
		}
	}

Após isso, ele chama a servlet que lista os contatos, e não aparece nenhuma alteração.
Eu olho no Oracle, e o registro continua intacto tb…
Não sei se preciso colocar mais código ai,
enfim, se alguem conseguir me ajudar…

ja agradeço!

flw

Cara tira essa linha:

con.commit(); 

e outra vc tem uma classe Usuario correto??? com esta alimentando ela???

Tenho sim, mas eu a uso apenas para instanciar e colocar os objetos do banco…

Usuario usuario = dao.carregar(id);

public Usuario carregar(Serializable id) throws Exception {
  		stmt = con.prepareStatement(SQL_CARREGAR);
		stmt.setLong(1, (Long)id);
		rs = stmt.executeQuery();
		List<Usuario> usuarios = carregaResultSet(rs);
		
		Usuario usuario = null;
		if(usuarios.size()>0){
			usuario = usuarios.get(0);
		}
		System.out.println("carrega = " + usuario.getId());
		return usuario;
}