Alterar dados que já foram salvos

2 respostas
Rodivan
Boa Noite pessoal! Estou fazendo uma aplicação em Servlet, estou usando o eclipse.. A situação é que não sei como fazer para alterar os dados que já estão salvos no banco.. Tenho o meu bean:
package gerenciador.bean;

public class Estoque {
	
	private int codigo;
	private String descricao;
	private String quantidade;
	
	public int getCodigo() {
		return codigo;
	}
	public void setCodigo(int codigo) {
		this.codigo = codigo;
	}
	public String getDescricao() {
		return descricao;
	}
	public void setDescricao(String descricao) {
		this.descricao = descricao;
	}
	public String getQuantidade() {
		return quantidade;
	}
	public void setQuantidade(String quantidade) {
		this.quantidade = quantidade;
	}

}

A classe EstoqueDao:

package gerenciador.dao;

public class EstoqueDao extends Conexao{
	
	public void Inserir(Estoque estoque) throws Exception{
		
		abrirBanco();
		
		String sqlInsert = "INSERT INTO estoque (descricao, quantidade) VALUES (?, ?)";
		
		ps = con.prepareStatement(sqlInsert);
		
		ps.setString(1, estoque.getDescricao());
		ps.setString(2, estoque.getQuantidade());
		
		ps.execute();
		
		fecharBanco();
	}
	
	public void Alterar(Estoque estoque) throws Exception{
		
		String sqlUpdate = "UPDATE estoque SET descricao = ?, quantidade = ? WHERE codigo = ?";
		
		ps = con.prepareStatement(sqlUpdate);
		
		ps.setString(1, estoque.getDescricao());
		ps.setString(2, estoque.getQuantidade());
		
		ps.execute();
		
		fecharBanco();
		
	}
	
public void Excluir(Estoque estoque) throws Exception{
		
		String sqlDelete = "DELETE FROM estoque WHERE codigo = ?";
		
		ps = con.prepareStatement(sqlDelete);
		
		ps.setInt(1, estoque.getCodigo());
		
		ps.execute();
		
		fecharBanco();
		
	}
	//restante do código

}

Tenho o meu Servlet

package gerenciador.servlet;

public class EstoqueServlet extends HttpServlet {

	private static final long serialVersionUID = 1L;

	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doExecute(request, response);
	}

	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		doExecute(request, response);
	}

	protected void doExecute(HttpServletRequest request, HttpServletResponse response) throws IOException {
		PrintWriter out = response.getWriter();

		String action = request.getParameter("action");
		if (action == null) action = "formulario";
		
		if (action.equals("formulario")) {
			// criar o formulario e enviar ao usuario
			out.print( FormularioEstoque.formSalvaEstoque() );
			
		} else if (action.equals("salvar")) {
			//pega os parametros do formulario

			String descricao = request.getParameter("descricao");
			String quantidade = request.getParameter("quantidade");

			Estoque estoque = new Estoque();
			estoque.setDescricao(descricao);
			estoque.setQuantidade(quantidade);

			try {
				new EstoqueDao().Inserir(estoque);
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			
			StringBuilder sb = new StringBuilder();
			sb.append("<div>Estoque cadastrado com sucesso!!!<br></div>");
			sb.append("<a href=\"EstoqueServlet\">Cadastrar outro</a>");
			sb.append("<a href=\"EstoqueServlet?action=voltar\">Listar</a>");
			out.print( sb.toString() );
		}
		
		else if(action.equals("editar")) {
			
			out.print( FormularioEstoque.formAlteraEstoque());
			
		}
		
	}

}
E a classe onde construo o HTML da página
package gerenciador.view;

import gerenciador.bean.Estoque;
import gerenciador.dao.EstoqueDao;

public class FormularioEstoque {
	
	public static String formSalvaEstoque(){
		
		StringBuilder sb = new StringBuilder();
		
		//cria os formulários para gravar o estoque
		sb.append("<form action=\"EstoqueServlet\" method=\"post\"> ");
		sb.append("  <input type=\"hidden\" name=\"action\" value=\"salvar\" />");
		
		sb.append(" <label>Descrição <input type=\"text\" name=\"descricao\" size=\"50\" /> </label>");
		sb.append(" <label>Quantidade <input type=\"text\" name=\"quantidade\" size=\"10\" /></label>");

		sb.append(" <input type=\"submit\" name=\"salvar\" value=\"Salvar\" />");
		
		//Tabela que apresentará o estoque
		sb.append(" <table border = \"1\"> <tr> ");
		sb.append(" <td width=\"80\" > <b>Código</b></td> ");
		sb.append(" <td width=\"180\"> <b>Descrição</b></td> ");
		sb.append(" <td width=\"100\"> <b>Quantidade</b></td> ");
		sb.append(" <td width=\"50\"> <b>Opções</b></td> </tr> ");
		
		EstoqueDao a = new EstoqueDao();
		
		try {
			for (int i = 0; i < a.listaEstoque() .size(); i++) {
			     Estoque estoque = a.listaEstoque().get(i);
			     sb.append (" <tr> ");
			     sb.append (" <td> " + estoque.getCodigo() + " </td>");
			     sb.append (" <td> " + estoque.getDescricao() + " </td>");
			     sb.append (" <td>" + estoque.getQuantidade() + " </td>");
			     sb.append (" <td> <a href=\"EstoqueServlet?action=editar&codigo="+estoque.getCodigo()+"\"><img src=\"imagens/editar.png\" border=\"0\" style=\"padding:3px\" title=\"Editar\"\">" +
			     		          "<a href=\"EstoqueServlet?action=excluir&codigo="+estoque.getCodigo()+"\"><img src=\"imagens/excluir.png\" border=\"0\" style=\"padding:3px\" title=\"Apagar\"\">" +
			     		          		"</a> </td> ");
			}
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return sb.toString();
	}
	
	public static String formAlteraEstoque(){
		
		StringBuilder sb = new StringBuilder();		
		
		//Apresenta os forms com os dados da alteração
		sb.append("<form action=\"EstoqueServlet\" method=\"post\">");
		sb.append(" <input type=\"hidden\" name=\"action\" value=\"editar\" />");
		
		sb.append(" <label>Descrição <input type=\"text\" name=\"descricao\" value=\"\" size=\"50\" /> </label>");
		sb.append(" <label>Quantidade <input type=\"text\" name=\"quantidade\" value=\"\" size=\"10\" /></label>");
		
		sb.append(" <input type=\"submit\" name=\"editar\" value=\"Salvar\" />");
		
		
		return sb.toString();
		
	}

}

No método formSalvaEstoque eu cadastro o estoque de um determinado item e logo abaixo ele tem uma tabela com os dados cadastrados. Também tenho uma coluna nessa tabela que possui duas opções: Alterar e Excluir.. Eu comecei fazer na classe FormularioEstoque o metodo formAlteraEstoque mas não sei como continuar. Alguém pode me dar uma luz de como fazer para alterar os dados do item que for selecionado? O value do formAlteraEstoque deve receber os dados a serem alterados não é? NO caso seria a informação do banco.. mas também não sei como inserir ...

2 Respostas

admsilva

Da uma estudada aqui, tem uma aplicação completa http://www.caelum.com.br/curso/fj-28-vraptor-hibernate-ajax/

admsilva

Ou mais básico http://www.caelum.com.br/curso/fj-21-java-web/

Criado 13 de agosto de 2011
Ultima resposta 14 de ago. de 2011
Respostas 2
Participantes 2