dúvida ao deletar [resolvido]

Olá pessoal estou com um pequeno projeto e estou com uma grande dúvida tenho uma servlet chamada removerJogador para deletar um jogador a partir de um parametro passado por uma página jsp que é o nome do jogador e tenho uma classe chamada JDBCJogadorDAO onde está implementado o método deletarJogador gente minha dúvida é na servlet na hora de pegar o jogador com o parametro passado pelo request.getParameter(nome) na servlet preciso passar um objeto do tipo jogador para o método deletarJogador se eu criar na servlet ele n vai encontrar no banco, gostaria de saber como faço pra deletar o jogador do banco cujo nome é passado pela jsp e pegado pela servlet.

segue as classes

package action;

import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.util.List;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import model.Jogador;

import DAO.FabricaConexao;
import DAO.JDBCJogadorDAO;

public class removerJogador extends HttpServlet {
	private static final long serialVersionUID = 1L;

	public removerJogador() {
		super();
		// TODO Auto-generated constructor stub
	}

	protected void doGet(HttpServletRequest request,
			HttpServletResponse response) throws ServletException, IOException {
		// TODO Auto-generated method stub
	}

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

		String nome = request.getParameter("nome");
		FabricaConexao fabrica = new FabricaConexao();
		Connection conexao = fabrica.fazConexao();
		String comando = "select * from jogadores where nome=?";

		try {
			java.sql.Statement stmt = conexao.createStatement();
			ResultSet rs = stmt.executeQuery(comando);
			JDBCJogadorDAO dao = new JDBCJogadorDAO(conexao);
			while(rs.next()){
				//preciso de um jogador para passar como parametro para o metodo equalsIgnoreCase
				//e tbm para o metodo deletarJogador do dao.
				if((request.getParameter(nome).equalsIgnoreCase(j.getNome()))){
					dao.deletarJogador(j);
				}
				
			}	
		
	}catch (Exception e){
		e.printStackTrace();
	}
}
}

Classe JDBCJogadorDAO

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 from 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();
		}
	}

}

Primeiro que um método que realize deleção, baseado em um nome é, no mínimo, suscetível à falhas.
Como assim?
Pense que você tem vários nomes iguais, os famosos homônimos (João da Silva, por exemplo).
Como saber qual João da Silva excluir?
O ideal seria um método que realizasse a exclusão baseado na chave primária do registro no banco.

tendi cara obrigado