package DAO.Campeonato;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import Control.Campeonato.CampeonatoEtapa_control;
import Control.Campeonato.Campeonato_control;
import Control.Campeonato.Inscrito.JuizBateria_control;
import Control.Usuario.Atleta_control;
import Control.Usuario.Juiz_control;
import DAO.BDConexao_dao;
import Model.Campeonato.CampeonatoEtapa_model;
import Model.Campeonato.Campeonato_model;
import Model.Usuario.Atleta_model;
import Model.Usuario.Juiz_model;
public class CampeonatoEtapa_dao extends Campeonato_dao {
/**
* Funcao para cadastro de campeonato etapa
* @param CampeonatoEtapa_model campeonatoEtapaModel
* @return boolean
* */
public boolean cadastrarCampeonatoEtapa (CampeonatoEtapa_model campeonatoEtapaModel){
Connection conn = null;
Statement stmt = null;
try{
conn = BDConexao_dao.conectar();
conn.setAutoCommit(false);
//Formato a data
DateFormat dataFormataData = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//Cadastrando a etapa
String sql = "INSERT INTO `bodyboardsys`.`campeonatoetapa` " +
"(`idcampeonatoetapa`, " +
"`nome`, " +
"`praia`, " +
"`dataInicio`, " +
"`dataEncerramento`, " +
"`cidade`, " +
"`idestado`, " +
"`idpais`, " +
"`idcampeonato`, " +
"`dataCadastro`) " +
"values " +
"(NULL, " +
"'"+campeonatoEtapaModel.getNomeEtapa()+"', " +
"'"+campeonatoEtapaModel.getPraia()+"', " +
"'"+dataFormataData.format(campeonatoEtapaModel.getDataInicioEtapa())+"', " +
"'"+dataFormataData.format(campeonatoEtapaModel.getDataEncerramentoEtapa())+"', " +
"'"+campeonatoEtapaModel.getCidade()+"', " +
"'"+campeonatoEtapaModel.getIdestado()+"', " +
"'"+campeonatoEtapaModel.getIdpais()+"', " +
"'"+campeonatoEtapaModel.getIdcampeonato()+"', " +
"NULL);";
stmt = conn.createStatement();
stmt.execute(sql);
} catch(SQLException e){
try {
// dou um rollback no BD caso ocorra alguma excessao ao atualizar o usuario
conn.rollback();
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return false;
} catch (SQLException e2) {
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return false;
}
}
try{
//dou commit no BD das alteracoes do usuario
conn.commit();
//fecho a conexao do BD
conn.close();
return true;
} catch (Exception e) {
return false;
}
}
public Campeonato_model cadastrarCampeonatoInteiro (Campeonato_model campeonatoModel, CampeonatoEtapa_model campeonatoEtapaModel){
Connection conn = null;
PreparedStatement pstmt = null;
Statement stmt = null;
try{
conn = BDConexao_dao.conectar();
conn.setAutoCommit(false);
//Formato a data
DateFormat dataFormataData = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
//Cadastrando o campeonato
String sql = "INSERT INTO `bodyboardsys`.`campeonato` " +
"(`idcampeonato`, " +
"`nome`, " +
"`dataInicio`, " +
"`dataEncerramento`, " +
"`dataCadastro`) " +
"values " +
"(NULL, " +
"'"+campeonatoModel.getNome()+"', " +
"'"+dataFormataData.format(campeonatoModel.getDataInicio())+"', " +
"'"+dataFormataData.format(campeonatoModel.getDataEncerramento())+"', " +
"NULL)";
stmt = conn.createStatement();
stmt.execute(sql, Statement.RETURN_GENERATED_KEYS);
ResultSet res = stmt.getGeneratedKeys();
int campeonatoId = 0;
if ( res.next() ) {
campeonatoId = res.getInt(1);
}else{
conn.rollback();
return null;
}
//seto o id deste campeonato
campeonatoModel.setIdcampeonato(campeonatoId);
//Cadastrando a etapa deste campeonato
String sql2 = "INSERT INTO `bodyboardsys`.`campeonatoetapa` " +
"(`idcampeonatoetapa`, " +
"`nome`, " +
"`praia`, " +
"`dataInicio`, " +
"`dataEncerramento`, " +
"`cidade`, " +
"`idestado`, " +
"`idpais`, " +
"`idcampeonato`, " +
"`dataCadastro`) " +
"values " +
"(NULL, " +
"'"+campeonatoEtapaModel.getNomeEtapa()+"', " +
"'"+campeonatoEtapaModel.getPraia()+"', " +
"'"+dataFormataData.format(campeonatoEtapaModel.getDataInicioEtapa())+"', " +
"'"+dataFormataData.format(campeonatoEtapaModel.getDataEncerramentoEtapa())+"', " +
"'"+campeonatoEtapaModel.getCidade()+"', " +
"'"+campeonatoEtapaModel.getIdestado()+"', " +
"'"+campeonatoEtapaModel.getIdpais()+"', " +
"'"+campeonatoModel.getIdcampeonato()+"', " +
"NULL);";
stmt = conn.createStatement();
stmt.execute(sql2);
} catch(SQLException e){
try {
// dou um rollback no BD caso ocorra alguma excessao ao inserir o Campeonato
conn.rollback();
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return null;
} catch (SQLException e2) {
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return null;
}
}
try{
//dou commit no BD das alteracoes do usuario
conn.commit();
//fecho a conexao do BD
conn.close();
return campeonatoModel;
} catch (Exception e) {
return null;
}
}
public static ArrayList<CampeonatoEtapa_model> listar(CampeonatoEtapa_model campeonatoEtapa,String tipoOrdem){
Connection conn = null;
PreparedStatement pstmt = null;
ResultSet res = null;
ArrayList<CampeonatoEtapa_model> listaCampeonatoEtapa = new ArrayList<CampeonatoEtapa_model>();
//Filtro da minha query
String filtro = "";
String ordem = "";
try{
conn = BDConexao_dao.conectar();
if(tipoOrdem != null){
ordem += BDConexao_dao.adicionaOrdem(ordem,tipoOrdem,"ASC");
}
if( campeonatoEtapa.getIdcampeonato() != 0 ){
String valor = " idcampeonato=";
valor += Integer.toString(campeonatoEtapa.getIdcampeonato());
filtro += BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
if( campeonatoEtapa.getIdcampeonatoetapa() != 0 ){
String valor = " idcampeonatoetapa=";
valor += Integer.toString(campeonatoEtapa.getIdcampeonatoetapa());
filtro += BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
if( campeonatoEtapa.getNomeEtapa() != null && campeonatoEtapa.getNomeEtapa() != "" ){
String valor = " nome like'" + campeonatoEtapa.getNomeEtapa() + "%'";
filtro += BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
String sql = "SELECT * FROM `bodyboardsys`.`campeonatoetapa` "+filtro+" "+ordem+";";
pstmt = conn.prepareStatement(sql);
res = pstmt.executeQuery();
listaCampeonatoEtapa = CampeonatoEtapa_control.carregarListaEtapaResultSet(res);
} catch(SQLException e){
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
} finally{
try {
pstmt.close();
conn.close();
conn = null;
pstmt = null;
return listaCampeonatoEtapa;
} catch (SQLException e) {
e.printStackTrace();
}
}
return null;
}
public CampeonatoEtapa_model carregarEtapa( CampeonatoEtapa_model campeonatoEtapaModel ){
Connection conn = null;
conn = BDConexao_dao.conectar();
//Filtro da minha query
String filtro = "";
if( campeonatoEtapaModel.getIdcampeonatoetapa() != 0 ){
String valor = " idcampeonatoetapa=";
valor += Integer.toString(campeonatoEtapaModel.getIdcampeonatoetapa());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
//preparando a query
Statement query = null;
String sql = "SELECT * FROM `bodyboardsys`.`campeonatoetapa` " + filtro;
ResultSet res = null;
try{
query = (Statement) conn.createStatement();
res = query.executeQuery(sql);
} catch(SQLException e){
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return null;
}
try{
campeonatoEtapaModel = CampeonatoEtapa_control.carregarEtapaResultSet(res);
conn.close();
return campeonatoEtapaModel;
} catch (Exception e) {
return null;
}
}
public CampeonatoEtapa_model carregarCampeonatoMaisEtapa( CampeonatoEtapa_model campeonatoEtapaModel ){
Connection conn = null;
conn = BDConexao_dao.conectar();
//Filtro da minha query
String filtro = "";
if( campeonatoEtapaModel.getIdcampeonatoetapa() != 0 ){
String valor = " ce.idcampeonatoetapa=";
valor += Integer.toString(campeonatoEtapaModel.getIdcampeonatoetapa());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
//preparando a query
Statement query = null;
String sql = "SELECT " +
"* " +
"FROM " +
"`bodyboardsys`.`campeonatoetapa` ce " +
"INNER JOIN " +
"`bodyboardsys`.`campeonato` c ON c.idcampeonato = ce.idcampeonato " +
"" + filtro;
ResultSet res = null;
try{
query = (Statement) conn.createStatement();
res = query.executeQuery(sql);
} catch(SQLException e){
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return null;
}
try{
campeonatoEtapaModel = CampeonatoEtapa_control.carregarCampeonatoMaisEtapaResultSet(res);
conn.close();
return campeonatoEtapaModel;
} catch (Exception e) {
return null;
}
}
public boolean editar( CampeonatoEtapa_model campeonatoEtapaModel ){
Connection conn = null;
conn = BDConexao_dao.conectar();
Statement stmt = null;
DateFormat dataFormataData = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
int res = 0;
//Filtro da minha query
String filtro = "";
if( campeonatoEtapaModel.getIdcampeonatoetapa() != 0 ){
String valor = " idcampeonatoetapa=";
valor += Integer.toString( campeonatoEtapaModel.getIdcampeonatoetapa() );
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
String sql = "UPDATE `bodyboardsys`.`campeonatoetapa` " +
"SET " +
"nome = '"+campeonatoEtapaModel.getNomeEtapa()+"'," +
"praia = '"+campeonatoEtapaModel.getPraia()+"'," +
"cidade = '"+campeonatoEtapaModel.getCidade()+"'," +
"idestado = '"+campeonatoEtapaModel.getIdestado()+"'," +
"idpais = '"+campeonatoEtapaModel.getIdpais()+"'," +
"dataInicio = '"+dataFormataData.format( campeonatoEtapaModel.getDataInicioEtapa() )+"'," +
"dataEncerramento = '"+dataFormataData.format( campeonatoEtapaModel.getDataEncerramentoEtapa() )+"' " +
filtro;
try{
conn.setAutoCommit(false);
stmt = conn.createStatement();
res = stmt.executeUpdate(sql);
} catch(SQLException e){
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
try {
// dou um rollback no BD caso ocorra alguma excessao ao atualizar o usuario
conn.rollback();
return false;
} catch (SQLException e2) {
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return false;
}
}
try{
//dou commit no BD das alteracoes do usuario
conn.commit();
//fecho a conexao do BD
conn.close();
return true;
} catch (Exception e) {
return false;
}
}
/**
* Funcao que atualiza o status de uma etpa
* @param int idcampeonatoEtapa
* @param int status
* @return boolean
* */
public boolean editarStatusEtapa( int idcampeonatoEtapa,int status ){
Connection conn = null;
Statement stmt = null;
int res = 0;
try{
conn = BDConexao_dao.conectar();
conn.setAutoCommit(false);
//Filtro da minha query
String filtro = "";
if( idcampeonatoEtapa != 0 ){
String valor = " idcampeonatoetapa=";
valor += Integer.toString( idcampeonatoEtapa );
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
String sql = "UPDATE `bodyboardsys`.`campeonatoetapa` " +
"SET " +
"status = '"+status+"' " +
filtro;
stmt = conn.createStatement();
res = stmt.executeUpdate(sql);
} catch(SQLException e){
try {
// dou um rollback no BD caso ocorra alguma excessao ao inserir o Campeonato
conn.rollback();
conn.close();
String erro = "Erro ao conectar com o banco: " + e.getMessage();
erro +="SQLException: " + e.getMessage();
erro +="SQLState: " + e.getSQLState();
erro +="VendorError: " + e.getErrorCode();
return false;
} catch (SQLException e2) {
String erro = "Erro ao conectar com o banco: " + e.getMessage();
erro +="SQLException: " + e.getMessage();
erro +="SQLState: " + e.getSQLState();
erro +="VendorError: " + e.getErrorCode();
return false;
}
}
try{
//fecho a conexao do BD
conn.close();
return true;
} catch (Exception e) {
return false;
}
}
/**
* Funcao que carrega uma lista de Atleta_model completo inscritos em uma etapa de campeonato
* @param CampeonatoEtapa_model campeonatoEtapaModel
* @return ArrayList<Atleta_model> listaAtletaInscrito
* */
public ArrayList<Atleta_model> listarAtletaInscrito( CampeonatoEtapa_model campeonatoEtapaModel ){
Connection conn = null;
conn = BDConexao_dao.conectar();
ArrayList<Atleta_model> listaAtletaInscrito = null;
//Filtro da minha query
String filtro = "";
if( campeonatoEtapaModel.getIdcampeonatoetapa() != 0 ){
String valor = " idcampeonatoetapaia=";
valor += Integer.toString(campeonatoEtapaModel.getIdcampeonatoetapa());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
//caso nao tenha filtro para esta consulta retorno a lista vazia
if(filtro == "" && filtro == null){
return listaAtletaInscrito;
}
//preparando a query
Statement query = null;
String sql = "SELECT" +
" * " +
"FROM " +
"`bodyboardsys`.`inscricaoatleta`" +
"" + filtro;
ResultSet res = null;
try{
query = (Statement) conn.createStatement();
res = query.executeQuery(sql);
} catch(SQLException e){
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return null;
}
try{
//instancio o obj Atleta_control
AtletaController atletaControl = new AtletaController();
listaAtletaInscrito = atletaControl.carregarListaUsuarioAtletaInscritoResultSet(res);
conn.close();
return listaAtletaInscrito;
} catch (Exception e) {
return null;
}
}
/**
* Funcao que carrega uma lista de Juiz_model completo inscritos em uma etapa de campeonato
* @param CampeonatoEtapa_model campeonatoEtapaModel
* @return ArrayList<Juiz_model> listaJuizInscrito
**/
public ArrayList<Juiz_model> listarJuizInscrito( CampeonatoEtapa_model campeonatoEtapaModel ){
Connection conn = null;
conn = BDConexao_dao.conectar();
ArrayList<Juiz_model> listaJuizInscrito = null;
//Filtro da minha query
String filtro = "";
if( campeonatoEtapaModel.getIdcampeonatoetapa() != 0 ){
String valor = " idcampeonatoetapa=";
valor += Integer.toString(campeonatoEtapaModel.getIdcampeonatoetapa());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
//caso nao tenha filtro para esta consulta retorno a lista vazia
if(filtro == "" && filtro == null){
return listaJuizInscrito;
}
//preparando a query
Statement query = null;
String sql = "SELECT" +
" * " +
"FROM " +
"`bodyboardsys`.`inscricaojuiz`" +
"" + filtro;
ResultSet res = null;
try{
query = (Statement) conn.createStatement();
res = query.executeQuery(sql);
} catch(SQLException e){
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return null;
}
try{
//instancio o obj Atleta_control
JuizController juizControl = new JuizController();
listaJuizInscrito = juizControl.carregarListaUsuarioJuizInscritoResultSet(res);
conn.close();
return listaJuizInscrito;
} catch (Exception e) {
return null;
}
}
/**
* Funcao que carrega um campeonato etapa inteiro com todas as baterias apartir da instancia atual de CampeonatoEtapa_model
* @param CampeonatoEtapa_model campeonatoEtapaModel
* @return CampeonatoEtapa_model campeonatoEtapaModel
* */
public ResultSet carregarCampeonatoEtapaInteiro( CampeonatoEtapa_model campeonatoEtapaModel ){
Connection conn = null;
conn = BDConexao_dao.conectar();
//Filtro da minha query
String filtro = "";
if( campeonatoEtapaModel.getIdcampeonato() != 0 ){
String valor = " ce.idcampeonato=";
valor += Integer.toString(campeonatoEtapaModel.getIdcampeonato());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
if( campeonatoEtapaModel.getIdcampeonatoetapa() != 0 ){
String valor = " ce.idcampeonatoetapa=";
valor += Integer.toString(campeonatoEtapaModel.getIdcampeonatoetapa());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
//preparando a query
Statement query = null;
String sql = "SELECT " +
"* " +
"FROM " +
"`bodyboardsys`.`campeonatoetapa` ce " +
"INNER JOIN " +
"`bodyboardsys`.`bateria` b ON b.idcampeonatoetapa = ce.idcampeonatoetapa " +
"" + filtro;
ResultSet res = null;
try{
query = (Statement) conn.createStatement();
res = query.executeQuery(sql);
} catch(SQLException e){
System.out.println("Erro ao conectar com o banco: " + e.getMessage());
System.err.println("SQLException: " + e.getMessage());
System.err.println("SQLState: " + e.getSQLState());
System.err.println("VendorError: " + e.getErrorCode());
return null;
}
try{
conn.close();
return res;
} catch (Exception e) {
return null;
}
}
}