package DAO.Campeonato.Julgamento;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import Control.Campeonato.Julgamento.Onda_control;
import DAO.BDConexao_dao;
import Model.Campeonato.Julgamento.Onda_model;
import Model.Usuario.Usuario_model;
public class Onda_dao {
/**
* Funcao para cadastro de ondas que um atleta surfou
* @param Onda_model ondaModel
* @return Onda_model ondaModel
* */
public Onda_model cadastrarOnda (Onda_model ondaModel){
//declarocoes de variaveis
int res = 0;
Connection conn = null;
Statement stmt = null;
try{
conn = BDConexao_dao.conectar();
conn.setAutoCommit(false);
// monto os valores para a minha query
String sql = "INSERT INTO `bodyboardsys`.`ondas` " +
"(`idondas`, " +
"`idatletadisputa`, " +
"`ordem`, " +
"`dataCadastro`) " +
"values " +
"(NULL, " +
"'"+ondaModel.getAtletaDisputaModel().getIdatletadisputa()+"', " +
"'"+ondaModel.getOrdem()+"', " +
"NULL);";
stmt = conn.createStatement();
stmt.execute(sql, Statement.RETURN_GENERATED_KEYS);
ResultSet rs = stmt.getGeneratedKeys();
if (rs.next()) {
res = rs.getInt(1);
//seto o id da onda
ondaModel.setIdonda(res);
//dou commit no BD das alteracoes
conn.commit();
}else{
res = 0;
ondaModel = null;
conn.rollback();
}
} catch(SQLException e){
try {
// dou um rollback no BD caso ocorra alguma excessao ao inserir o Campeonato
conn.rollback();
conn.close();
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{
//fecho a conexao do BD
conn.close();
return ondaModel;
} catch (Exception e) {
return null;
}
}
/**
* Funcao que carrega a ultima onda surfada por um atleta
* @param Onda_model ondaModel
* @param String tipoOrdem
* @return Onda_model ondaModel
* */
public Onda_model carregarUltimaOnda( Onda_model ondaModel, String tipoOrdem ){
//declarocoes de variaveis
Connection conn = null;
Statement stmt = null;
ResultSet res = null;
try{
conn = BDConexao_dao.conectar();
//Filtro da minha query
String filtro = "";
String ordem = "";
if( tipoOrdem == "ordem" ){
ordem += BDConexao_dao.adicionaOrdem(ordem,tipoOrdem,"DESC");
}
if( ondaModel.getIdonda() != 0 ){
String valor = " idondas=";
valor += Integer.toString(ondaModel.getIdonda());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
if( ondaModel.getAtletaDisputaModel() != null ){
if( ondaModel.getAtletaDisputaModel().getIdatletadisputa() != 0 ){
String valor = " idatletadisputa=";
valor += Integer.toString( ondaModel.getAtletaDisputaModel().getIdatletadisputa() );
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
}
//preparando a query
Statement query = null;
String sql = "SELECT " +
"*" +
" FROM " +
"`bodyboardsys`.`ondas` " +
"" + filtro + " " +
"" + ordem + " " +
"LIMIT 1;";
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{
ondaModel = Onda_control.carregarOndaResultSet(res);
//fecho a conexao com o bd
conn.close();
return ondaModel;
} catch (Exception e) {
return null;
}
}
/**
* Funcao que edita uma notaFinal de uma onda apartir de uma instancia
* @param Onda_model ondaModel
* @return boolean
* */
public static boolean editarNotaFinal(Onda_model ondaModel){
Connection conn = null;
conn = BDConexao_dao.conectar();
Statement stmt = null;
//ResultSet res = null;
int res = 0;
//Filtro da minha query
String filtro = "";
if( ondaModel.getIdonda() != 0 ){
String valor = " idondas=";
valor += Integer.toString(ondaModel.getIdonda());
filtro = BDConexao_dao.adicionaFiltro(filtro, valor, "");
}
//Formato a data
DateFormat dataFormataData = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
String sql = "UPDATE `bodyboardsys`.`ondas` " +
"SET " +
"notafinal = '"+ondaModel.getNotaParcial()+"' " +
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();
//fecho a conexao do BD
conn.close();
} 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;
}
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;
}
}
}