Java tutorial
/* * To change this license header, choose License Headers in Project Properties. * To change this template file, choose Tools | Templates * and open the template in the editor. */ package br.luck.contar; import br.luck.configuracao.HibernateUtil; import br.luck.interfaces.Contar; import br.luck.model.ContarModel; import br.luck.model.MegasenaModel; import java.util.ArrayList; import java.util.List; import org.hibernate.Criteria; import org.hibernate.Session; import org.hibernate.criterion.Projections; import org.hibernate.criterion.Restrictions; /** * * @author filipi */ public class MegasenaContar extends Contar { private Session session = HibernateUtil.getSessionFactory().getCurrentSession(); public Session getSession() { return session; } public void setSession(Session session) { this.session = session; } @Override public List<ContarModel> contarNumerosSorteados(long concursoinicio, long concursoFim, int bolaInicio, int bolaFim) throws Exception { int quantidade; List<ContarModel> contar = new ArrayList<ContarModel>(); try { for (int bola = bolaInicio; bola <= bolaFim; bola++) { // Recebe a quantidade que o nmero saiu quantidade = obterQuantidade(verificarBola(bola), concursoinicio, concursoFim, 1, 6); // Adiciona na lista que ser retornada contar.add(new ContarModel(bola, quantidade)); } return contar; } catch (Exception e) { throw new Exception(e.getMessage()); } } @Override protected int obterQuantidade(String bola, long concursoinicio, long concursoFim, int colunaInicio, int colunaFim) throws Exception { List<Long> lista = new ArrayList<Long>(); long quantidade = 0; for (int coluna = colunaInicio; coluna <= colunaFim; coluna++) { Criteria criteria = getSession().createCriteria(MegasenaModel.class); String col = String.valueOf((coluna < 10) ? "0" + coluna : coluna); criteria.setProjection(Projections.count("bola" + col)); criteria.add(Restrictions.eq("bola" + col, bola)); criteria.add(Restrictions.between("concurso", concursoinicio, concursoFim)); try { lista.add((Long) criteria.uniqueResult()); } catch (Exception e) { throw new Exception(e.getMessage()); } } // Percorre a lista somando os resultados for (Long soma : lista) { quantidade = quantidade + soma; } return Integer.parseInt(String.valueOf(quantidade)); } @Override protected String verificarBola(int bola) { return super.verificarBola(bola); //To change body of generated methods, choose Tools | Templates. } }