Olá galera eu estou iniciando aqui em java web e estou com um mini projeto pra fazer onde tenho uma duas paginas.jsp
e tenho uma servlet chamada inserirJogador que utilizo um form jsp da classe novoJogador.jsp e passo para ela via método doPost dela para inserir um jogador no banco, e funciona
normalmente, em uma das minhas classes do meu pacote de persistencia eu implementei métodos para remover e atualizar um elemento
numa List de jogadores que fiz. Minha dúvida é a seguinte. Tenho que fazer outra servlet para remover o elemento? Lembrando que preciso
receber um nome como parametro e verificar se o mesmo já está cadastrado no bd. Postarei aqui os arquivos fontes. Desde já agradeço a colaboração
de todos.
class JDBCJogador
package DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.List;
import model.Jogador;
public class JDBCJogadorDAO implements JogadorDAO {
Connection conexao;
public JDBCJogadorDAO(Connection conexao) {
this.conexao = conexao;
}
public void InserirJogador(Jogador jogador) {
String comando = "insert into jogadores" + "(nome, ataque, defesa, vida, nivel, experiencia)"
+ "values(?,?,?,?,?,?)";
PreparedStatement p;
try {
p = this.conexao.prepareStatement(comando);
p.setString(1, jogador.getNome());
p.setInt(2, jogador.getAtaque());
p.setInt(3, jogador.getDefesa());
p.setInt(4, jogador.getVida());
p.setInt(5, jogador.getNivel());
p.setInt(6, jogador.getExperiencia());
p.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
public void deletarJogador(Jogador j) {
String comando = "delete jogadores where nome =?";
PreparedStatement p;
try {
p = this.conexao.prepareStatement(comando);
p.setString(1, j.getNome());
p.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
public List<Jogador> listarTodos() {
List<Jogador> jogadores = new ArrayList<Jogador>();
String comando = "select * from jogadores";
try {
java.sql.Statement stmt = conexao.createStatement();
ResultSet rs = stmt.executeQuery(comando);
while (rs.next()) {
Jogador jogador = new Jogador();
String nome = rs.getString("nome");
int ataque = rs.getInt("ataque");
int defesa = rs.getInt("defesa");
int vida = rs.getInt("vida");
int nivel = rs.getInt("nivel");
int experiencia = rs.getInt("experiencia");
jogador.setNome(nome);
jogador.setAtaque(ataque);
jogador.setDefesa(defesa);
jogador.setVida(vida);
jogador.setNivel(nivel);
jogador.setExperiencia(experiencia);
jogadores.add(jogador);
}
} catch (Exception e) {
e.printStackTrace();
}
return jogadores;
}
public void atualizar(Jogador j) {
String comando = "update jogadores set nome=?,set ataque=?, set defesa=?, set vida=? set nivel=?, set experiencia=?";
PreparedStatement p;
try {
p = this.conexao.prepareStatement(comando);
p.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
}
}
}
servlet inserirJogador. Obs: trabalhando bem
package action;
import java.io.IOException;
import java.sql.Connection;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import DAO.FabricaConexao;
import DAO.JDBCJogadorDAO;
import model.Jogador;
public class inserirJogador extends HttpServlet {
private static final long serialVersionUID = 1L;
public inserirJogador() {
super();
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String nome = request.getParameter("nome");
String ataquest = request.getParameter("ataque");
int valorAtaque = Integer.parseInt(ataquest);
String defesast = request.getParameter("defesa");
int valorDefesa = Integer.parseInt(defesast);
String vidast = request.getParameter("vida");
int valorVida = Integer.parseInt(vidast);
String nivelst = request.getParameter("nivel");
int valorNivel = Integer.parseInt(nivelst);
String experienciast = request.getParameter("experiencia");
int valorExperiencia = Integer.parseInt(experienciast);
Jogador novoJogador = new Jogador();
novoJogador.setNome(nome);
novoJogador.setAtaque(valorAtaque);
novoJogador.setDefesa(valorDefesa);
novoJogador.setVida(valorVida);
novoJogador.setNivel(valorNivel);
novoJogador.setExperiencia(valorExperiencia);
FabricaConexao fabrica = new FabricaConexao();
Connection conexao = fabrica.fazConexao();
JDBCJogadorDAO dao = new JDBCJogadorDAO(conexao);
dao.InserirJogador(novoJogador);
fabrica.fecharConexao();
}
}
novoJogador.jsp: formulario de inserção no bd
<%@page import="model.Jogador"%>
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Cadastro de jogador</title>
</head>
<body>
<h1>Cadastro do Jogador</h1>
<h2>Coloque seus dados no formulário e clique em <b>cadastrar.</b></h2>
<form action="inserirJogador" method="post">
<table>
<tr>
<td>Nome:</td><td><input type="text" name="nome"></td>
</tr>
<tr>
<td>Ataque:</td><td><input type="text" name="ataque"></td>
</tr>
<tr>
<td>Defesa:</td><td><input type="text" name="defesa"></td>
</tr>
<tr>
<td>Vida:</td><td><input type="text" name="vida"></td>
</tr>
<tr>
<td>Nivel:</td><td><input type="text" name="nivel"></td>
</tr>
<tr>
<td>Experiencia:</td><td><input type="text" name="experiencia"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="Cadastrar"></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="reset" value="Limpar"></td>
</tr>
</table>
</form>
<a href="listarJogadores.jsp"><b>Clique aqui</b> para ver os jogadores Cadastrados.</a>
</body>
</html>
lembro gente que minha dúvida é se tenho que fazer outra servlet para remover jogadores da list
visto que preciso receber do usuário o nome do jogador que ele pretende excluir.