Pessoal Esse código abaixo é chamando por uma classe controladora que acessa esse DAO e persiste os dados do tipo Jogador.
Meu Problema é o Seguinte: Tenho uma lista que possui 10000 Jogadores com nomes repetidos, ja instanciados e pretendo inseri-los no banco, mais não pode ter jogador com o nome repetido.
O banco insere 996 registros, e criei um contador que visualiza o número de registros lidos 3906. "O restante ta com o nome repetido". Ainda existe muitos jogadores para serem inseridos, Porém cai na excessão e encerra o programa.
Meu Programa ta com algum erro, ou é limite de consultas seguidas no MYSQL ??? como tratar isso :( :(
public CRUDJogador() {
ConexaoBancoMysql conexao = new ConexaoBancoMysql();
this.conex = conexao.conectarParaManipular();
}
private void fechaConexao() {
try {
this.conex.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void salvarNovoJogador(Jogador jogador) {
try {
String consultaExisteNome = "Select * FROM TB_JOGADOR WHERE nome = "
+ '"' + jogador.getNome() + '"';
System.out.println("jogador=" + jogador.getNome());
System.out.println("conexao= " + this.conex);
PreparedStatement stmt = conex.prepareStatement(consultaExisteNome);
ResultSet rs = stmt.executeQuery(consultaExisteNome);
if (rs.next() == true) {
System.out.println("Relacional "
+ ((Funcionario) jogador).getNome()
+ " com nome ja existente no banco");
this.fechaConexao();
}
else
{
String sqlInsereJogador = "INSERT INTO TB_JOGADOR(nome,telefone,email,posicao,idade) VALUES((?), (?), (?), (?), (?))";
PreparedStatement stmt1 = conex
.prepareStatement(sqlInsereJogador);
stmt1.setString(1, jogador.getNome());
stmt1.setString(2, jogador.getTelefone());
stmt1.setString(3, jogador.getEmail());
stmt1.setString(4, jogador.getPosicao());
stmt1.setString(5, jogador.getIdade());
stmt1.executeUpdate();
stmt1.close();
this.fechaConexao();
}
}
catch (SQLException e)
{
System.out.println("conexao=" + this.conex);
System.out.println(e.toString());
e.printStackTrace();
}
}
