/** * */ package DAO.Usuario; 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.Usuario.Atleta_control; import Control.Usuario.Gerente_control; import Control.Usuario.Juiz_control; import Control.Usuario.Usuario_control; import DAO.BDConexao_dao; import Model.Usuario.Usuario_model; /** * @author Raffael * */ public class Usuario_dao { /** * Construtor da classe */ public Usuario_dao() { // TODO Auto-generated constructor stub } /** * Funcao para cadastrar um usuario * @param Usuario_model usuario * @return boolean * */ public boolean cadastrar(Usuario_model usuario){ Connection conn = null; Statement stmt = null; int res = 0; try{ conn = BDConexao_dao.conectar(); conn.setAutoCommit(false); DateFormat dataFormatada = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String sql = "INSERT INTO `bodyboardsys`.`usuario`" + "(nome," + "sexo, " + "telefone, " + "email, " + "senha, " + "dataNascimento, " + "idtipousuario, " + "idcidadeu) " + "VALUES" + " ('"+usuario.getNome()+"', " + "'"+usuario.getSexo()+"', " + ""+usuario.getTelefone()+", " + "'"+usuario.getEmail()+"', " + "'"+usuario.getSenha()+"', " + "'"+dataFormatada.format(usuario.getDataNascimento())+"', " + ""+usuario.getTipoUsuario()+", " + "'"+usuario.getCidade()+"')"; stmt = conn.createStatement(); stmt.execute(sql, Statement.RETURN_GENERATED_KEYS); ResultSet rs = stmt.getGeneratedKeys(); if (rs.next()) { res = rs.getInt(1); conn.commit(); if( usuario.getTipoUsuario() == 2 ){ //cadastro de atleta AtletaController atletaControl = new AtletaController(); atletaControl.cadastrar(res); }else if( usuario.getTipoUsuario() == 3 ){ //cadastro de juiz JuizController juizControl = new JuizController(); juizControl.cadastrar(res); }else if( usuario.getTipoUsuario() == 1 ){ //cadastro de gerente GerenteController gerenteControl = new GerenteController(); gerenteControl.cadastrar(res); } }else{ res = 0; conn.rollback(); } } catch(SQLException e){ try { conn.rollback(); } catch (SQLException e2) { e2.printStackTrace(); } 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()); } if(res == 0){ return false; }else{ return true; } } public Usuario_model efetuarLogin(String email,String senha) throws Exception{ Connection conn = null; conn = BDConexao_dao.conectar(); Statement query = null; String sql = "SELECT * FROM `bodyboardsys`.`usuario` WHERE email = '"+email+"' and senha = '"+senha+"';"; ResultSet res = null; try{ query = 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()); } try{ Usuario_model usuarioModel = null; usuarioModel = UsuarioController.carregarResultSet(res); conn.close(); return usuarioModel; } catch (Exception e) { throw e; } } public Usuario_model enviaLogin(String email)throws Exception{ //BDConexao_dao conn = new BDConexao_dao(); //ResultSet rs = null; Connection conn = null; conn = BDConexao_dao.conectar(); ResultSet res = null; Statement query = null; try{ String sql = "SELECT * FROM `bodyboardsys`.`usuario` WHERE email = '"+email+"';"; query = conn.createStatement(); res = query.executeQuery(sql); //ResultSet res = conn.getInstance().executeQuery(sql); //ResultSetMetaData metaData = res.getMetaData(); } 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{ Usuario_model usuarioModel = null; usuarioModel = UsuarioController.carregarResultSet(res); conn.close(); return usuarioModel; }catch(Exception e){ throw e; //System.out.println("Ocorreu um erro inesperado: " + e.getMessage()); } } public static ArrayList<Usuario_model> listar( Usuario_model usuarioModel, String tipo ){ Connection conn = null; PreparedStatement pstmt = null; ResultSet res = null; ArrayList<Usuario_model> listaUsuario = null; //Filtro da minha query String filtro = ""; String ordem = ""; try{ if(tipo != null){ ordem += BDConexao_dao.adicionaOrdem(ordem,tipo,"ASC"); } if( usuarioModel.getId() != 0 ){ String valor = " idusuario="; valor += Integer.toString(usuarioModel.getId()); filtro += BDConexao_dao.adicionaFiltro(filtro, valor, ""); } if( usuarioModel.getNome() != null && usuarioModel.getNome() != "" ){ String valor = " nome like'"+usuarioModel.getNome()+"%'"; filtro += BDConexao_dao.adicionaFiltro(filtro, valor, ""); } if( usuarioModel.getEmail() != null && usuarioModel.getEmail() != ""){ String valor = " email like'"+usuarioModel.getEmail()+"%'"; valor += usuarioModel.getEmail(); filtro += BDConexao_dao.adicionaFiltro(filtro, valor, ""); } if( usuarioModel.getTipoUsuario() != 0 ){ String valor = " idtipousuario="; valor += Integer.toString(usuarioModel.getTipoUsuario()); filtro += BDConexao_dao.adicionaFiltro(filtro, valor, ""); } conn = BDConexao_dao.conectar(); String sql = "SELECT * FROM `bodyboardsys`.`usuario`" + filtro + ordem + ";"; pstmt = conn.prepareStatement(sql); res = pstmt.executeQuery(); listaUsuario = UsuarioController.carregarListaResultSet(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 listaUsuario; } catch (SQLException e) { e.printStackTrace(); } } return null; } /** * Funcao que monta um menu atraves do tipo de cada usuario do sistema * @param int usuarioTipo * @return ArrayList<String> * */ public static ArrayList montaMenu(int usuarioTipo){ Connection conn = null; conn = BDConexao_dao.conectar(); Statement query = null; String sql = "select idfuncaof from `bodyboardsys`.`usuariofuncao` where idtipousuariof = 1"; 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()); } try{ while(res.next()){ } conn.close(); } catch (Exception e) { } return null; } /** * Funcao que carrega um Usuario_model apartir da instancia atual * @param Usuario_model usuarioModel * @return Usuario_model usuarioModel * */ public Usuario_model carregar( Usuario_model usuarioModel){ Connection conn = null; conn = BDConexao_dao.conectar(); //Filtro da minha query String filtro = ""; if( usuarioModel.getId() != 0 ){ String valor = " idusuario="; valor += Integer.toString(usuarioModel.getId()); filtro = BDConexao_dao.adicionaFiltro(filtro, valor, ""); } if( usuarioModel.getEmail() != null && usuarioModel.getEmail() != ""){ String valor = " email='"+usuarioModel.getEmail()+"'"; filtro = BDConexao_dao.adicionaFiltro(filtro, valor, ""); } //preparando a query Statement query = null; String sql = "SELECT * FROM `bodyboardsys`.`usuario` " + 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{ usuarioModel = UsuarioController.carregarResultSet(res); conn.close(); return usuarioModel; } catch (Exception e) { return null; } } /** * Funcao que edita um Usuario_model apartir de uma instancia * @param Usuario_model usuarioModel * @return Usuario_model usuarioModel * */ public Usuario_model editar( Usuario_model usuarioModel){ Connection conn = null; conn = BDConexao_dao.conectar(); Statement stmt = null; //ResultSet res = null; int res = 0; //Filtro da minha query String filtro = ""; if( usuarioModel.getId() != 0 ){ String valor = " idusuario="; valor += Integer.toString(usuarioModel.getId()); filtro = BDConexao_dao.adicionaFiltro(filtro, valor, ""); } //Formato a data DateFormat dataFormataData = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss"); String sql = "UPDATE `bodyboardsys`.`usuario` " + "SET " + "nome = '"+usuarioModel.getNome()+"'," + "sexo = '"+usuarioModel.getSexo()+"', " + "telefone = "+usuarioModel.getTelefone()+", " + "email = '"+usuarioModel.getEmail()+"', " + "senha = '"+usuarioModel.getSenha()+"', " + "dataNascimento = '"+dataFormataData.format( usuarioModel.getDataNascimento() )+"', " + "idtipousuario = "+usuarioModel.getTipoUsuario()+", " + "idcidadeu = '"+usuarioModel.getCidade()+"' " + 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(); } 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; } return null; } try{ //dou commit no BD das alteracoes do usuario conn.commit(); //fecho a conexao do BD conn.close(); return usuarioModel; } catch (Exception e) { return null; } } }