segunda-feira, 18 de novembro de 2013

Criando scheduler com Quartz

import org.apache.log4j.Logger;
import org.quartz.CronTrigger;
import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerException;
import org.quartz.impl.StdSchedulerFactory;

import br.com.gmm.scheduler.tasks.MMOnlineSchedulerTask;

public class SchedulerAgent extends HttpServlet {
/**
*
*/
private static final long serialVersionUID = 4867136433906642551L;
private static final Logger LOGGER = Logger.getLogger(SchedulerAgent.class.getName());
public static Scheduler scheduler;


@Override
public void init(ServletConfig config) throws ServletException {
LOGGER.info("iniciando servletAgente de scheduler");


try {
Scheduler scheduler = new StdSchedulerFactory().getDefaultScheduler();
       scheduler.start();
      JobDetail jobDetail = new JobDetail("MyJob", scheduler.DEFAULT_GROUP, MMOnlineSchedulerTask.class); //Define qual a classe que contém o metodo Job a ser executado
      CronTrigger trigger = new CronTrigger("MyTrigger", scheduler.DEFAULT_GROUP, "0 0 8 * * ? *");// determina o horário de cada execução: todos os dias às 8:00 horas
      scheduler.scheduleJob(jobDetail, trigger);
} catch (SchedulerException  e) {
LOGGER.warn(e);
} catch (ParseException e) {
LOGGER.warn(e);
}


}
}

package br.com.gmm.scheduler.tasks;

import java.util.Date;
import java.util.List;

import org.apache.log4j.Logger;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

import br.com.gmm.scheduler.entity.mmonline.ViewMMOnline;
import br.com.gmm.scheduler.facade.FacadeFactory;
import br.com.gmm.scheduler.facade.MmonlineFacade;

public class MMOnlineSchedulerTask implements ISchedulerTask, Job{
private static Logger logger = Logger.getLogger(MMOnlineSchedulerTask.class);
public void run(){

//esse método é executado!!!
StatusNewsScheduleTask newsScheduleTask = new StatusNewsScheduleTask();
newsScheduleTask.run();
}
@Override
public void execute(JobExecutionContext context)
throws JobExecutionException {
run();

}
}



Ler html a partir uma URL

Como ler o html de uma pagina na web através da url com java:

import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;

public class UrlTask{
   public static void main(String[] args){
      URL url;
try {
url = new URL("http://youtu.be/VKZ6Tmu9NWw?t=4m");
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
       String linha = "";
       while ((linha = reader.readLine()) != null)
           System.out.println(linha);
       reader.close();
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
   }

}

quarta-feira, 6 de novembro de 2013

Preencher zeros à esquerda com função Oracle

Preencher zeros à esquerda com função Oracle 

No Oracle assim no como no Postgres a função LPAD preenche caracteres no lado esquerdo de uma string.
Sintaxe:
LPAD (strlenghtpad)
Legenda:
stré a seqüência de caracteres preencher o lado esquerdo.
Length: posições (qtde) à preencher.
pad: é o valor que irá completar as posições.
Exemplos de uso:
lpad('tech', 7); retorna '   tech'
lpad('tech', 2); retorna 'te'
lpad('tech', 8, '0'); retorna '0000tech'
lpad('tech on the net', 16, 'z'); retorna 'ztech on the net'
lpad('tech on the net', 15, 'z'); retorna 'tech on the net'



Para preencher zeros a esquerda:
select LPAD(string,3,0) from tabela –- dada a string “A” com tamanho 3, e pad “0”, irá resultar em “00A”

--update geral na coluna para completar com zero a esquerda o valores com tamanho inferior a 6 digitos
update aluno set matricula = lpad(matricula, 6, '0'); --valor 123 vai para 000123, valor 2 vai para 000003, etc...

Veja a função RPAD caso queira fazer o prenchimento à direita.