gente no projeto que estou fazendo não pode cadastrar jogadores com o mesmo nome, então na minha classe JDBCJogadorDAO eu implementei o método verificaNome(String nome)
tento fazer com ele que ao tentar cadastrar um jogador com nome já cadastrado seja emitida uma mensagem dizendo que já existe um jogador com aquele nome e ele não pode cadastrar outro, fiz o teste e ele não cadastra mas tbm não exibe a mensagem do método verificaNome() e no console do tomCat mostra uma mensagem falando a respeito da chave primária, que no meu projeto é o nome do jogador, o método produz o efeito esperado só que eu acho que de maneira errada pois não exibe a mensagem do metodo no console, vocês podem me ajudar quanto a eu melhorar isso?
servlet de inserção de jogadores
package action;
import java.io.IOException;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
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.verificaNome(nome);
dao.InserirJogador(novoJogador);
fabrica.fecharConexao();
}
}
classe JDBCJogadorDAO onde está o metodo verificaNome(String nome)
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();
}
}
@Override
public void verificaNome(String nome) {
String comando = "select * from jogadores";
PreparedStatement p;
try {
java.sql.Statement stmt = conexao.createStatement();
ResultSet rs = stmt.executeQuery(comando);
while(rs.next()){
Jogador j = new Jogador();
j.setNome(j.getNome());
p = this.conexao.prepareStatement(comando);
p.setString(1, j.getNome());
if(nome == j.getNome()){
System.out.println("Já existe um cadastro com esse nome!");
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}