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