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.

quinta-feira, 31 de outubro de 2013

Paginação no Oracle

select *
from (select usuario.*, rownum rn
   from cad_mmnetwork usuario
  inner join cad_mmnetwork_dados dados
  on usuario.id_usuario = dados.id_usuario
  where usuario.cad_ativo = 'S'

  and rownum <=10)

where rn >5  ;

Rsultará em 5 linhas

Recuperando dados do ResultSet no java, array de objetos

Recuperando dados do ResultSet no java, array de objetos:

Retornando apenas um Integer:
    BigDecimal tot = new BigDecimal(0);
for (Object rows : sqlQuery.list()) {
tot =  (BigDecimal) rows;
}
return tot.intValue();


Retornando array de objetos:

for (Object rows : query.list()) {
c = new Contato();
Object[] row = (Object[]) rows;
c.setDados(new ContatoDados());
c.getDados().setPri_nome((String) row[0]);
c.setEmail_login((String) row[1]);

}

quarta-feira, 31 de outubro de 2012

Startegy

public
class SolicitacaoFacadeImpl implements SolicitacaoFacade {
private static final String pacote = "br.com.marketdata.sps.business.impl.";
private final ISolicitacaoFacadeStrategy strategy;
private final Solicitacao solicitacao;
private SolicitacaoDao solicitacaoDao;
public SolicitacaoFacadeImpl() {
super();
strategy = new SolicitacaoFacadeStrategy();
solicitacao = null;
}
 
 
public SolicitacaoFacadeImpl(Solicitacao solicitacao){
if(solicitacao == null){
throw new IllegalArgumentException("Campo solicitacao não pode ser nulo.");
}
String classe = String.format(
"%sFacadeStrategy", solicitacao.getClass().getSimpleName());
try {
@SuppressWarnings("unchecked")
Class<ISolicitacaoFacadeStrategy> clazz = (Class<ISolicitacaoFacadeStrategy>) Class.forName(
pacote+classe);
strategy = clazz.newInstance();
this.solicitacao = solicitacao;
}
catch (ClassNotFoundException e) {
throw new RuntimeException("Erro ao criar o objeto Class de " + classe, e);
}
catch (InstantiationException e) {
throw new RuntimeException("Falha na inicialização de " + classe, e);
}
catch (IllegalAccessException e) {
throw new RuntimeException("Falha ao acessar o construtor padrão de " + classe, e);
}
}
}
Design Paterns

Herança com hibernate




Criando relacionamento com herança usando Hibernate


Classe Solicitacao:

@Inheritance
(strategy=InheritanceType.JOINED)
@Entity
@Table
(name="solicitacao")
public
class Solicitacao implements Serializable{
/**
*
*/
private static final long serialVersionUID = 3839124554732341724L;
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
@Column(name="id_solicitacao")
private Integer idSolicitacao;}


Classe SolicitacaoDeEnvio:

@PrimaryKeyJoinColumn
(name="id_solicitacao")
@Entity
@Table
(name="solicitacao_bloqueio")
public
class SolicitacaoDeEnvio extends Solicitacao{
private static final long serialVersionUID = 1L;
}


Classe SolicitacaoDeRecebimento:

@PrimaryKeyJoinColumn
(name="id_solicitacao")
@Entity
@Table
(name="solicitacao_bloqueio")
public
class SolicitacaoDeRecebimento extends Solicitacao{
private static final long serialVersionUID = 1L;
}

quinta-feira, 2 de agosto de 2012

Recuperando dados de um Map no JSP

<select name="statusSolicitacao">
  <c:set value="${status[s.idSolicitacao]}" var="st" />
 <c:forEach var="ss" items="${st}">
     <option value="${ss.idStatusSolicitacao}">${ss.nome}</option>
 </c:forEach>
</select>

quarta-feira, 27 de junho de 2012

Iniciando o TomCat com Ant

<project name="GPadrao" default="create-war" basedir=".">
 <property name="app.name" value="GrupoPadrao"/>
 <property name="tomcat.home" value="C:/tomcat/apache-tomcat-6.0.35"/>
 <property name="deploy.home" value="${tomcat.home}/webapps"/>
 <property name="src.dir" value="src" />
 <property name="workspace" value="${basedir}/.." />
 <property name="project.name" value="GPadrao" />
 <property name="classes.dir" value="www/WEB-INF/classes" />
 <property name="lib.dir" location="www/WEB-INF/lib" />
 <property name="jars.dir" location="dist" />
 <path id="build.classpath">
  <fileset dir="${lib.dir}">
   <include name="**/*.jar" />
  </fileset>
 </path>
 <target name="toReady">
  <mkdir dir="${src.dir}"/>
  <mkdir dir="${classes.dir}"/>
  <mkdir dir="${jars.dir}"/>
 </target>
 <target name="build" depends="toReady">
  <javac srcdir="${src.dir}" destdir="${classes.dir}">
   <classpath refid="build.classpath">
   </classpath>
  </javac>
 </target>
 <target name="package" depends="build">
  <war destfile="${jars.dir}/${app.name}.war" webxml="www/WEB-INF/web.xml">
   <classes dir="${classes.dir}">
   </classes>
   <fileset dir="www">
   </fileset>
  </war>
 </target>
 <target name="deploy" depends="package">
  <copy file="${jars.dir}/${app.name}.war" tofile="${deploy.home}/${app.name}.war">
  </copy>
  <antcall target="clean">
  </antcall>
 </target>
 <target name="clean">
  <delete dir="${jars.dir}">
  </delete>
 </target>
 <target name="undeploy">
  <delete file="${deploy.home}/${app.name}.war"/>
 </target>
 <target name="create-war" depends="package">
 </target>
 <target name="tomcat-start">
  <java jar="${tomcat.home}/bin/bootstrap.jar" fork="true">
   <jvmarg value="-Dcatalina.home=${tomcat.home}"/>
  </java>
 </target>

 <target name="tomcat-stop">
  <java jar="${tomcat.home}/bin/bootstrap.jar" fork="true">
   <jvmarg value="-Dcatalina.home=${tomcat.home}"/>
   <arg line="stop"/>
  </java>
 </target>
 <target name="Full">
  <antcall target="deploy">
  </antcall>
  <antcall target="clean">
  </antcall>
  <antcall target="tomcat-stop">
  </antcall>
  <antcall target="browser">
  </antcall>
  <antcall target="tomcat-start">
  </antcall>

 </target>
 <target name="browser">
  <exec executable="C:/Arquivos de programas/Internet Explorer/iexplore.exe">
   <arg value="http://localhost:8080/${app.name}"/>
  </exec>
 </target>




 <target name="war">
  <jar destfile="ROOT.war">
   <fileset dir="www">
    <include name="**" />
   </fileset>
  </jar>
 </target>

 <target name="create-schedule">
  <jar destfile="GPadrao_ExtracaoContatos.jar">
   <manifest>
    <attribute name="Main-class" value="com.mdsb.gpadrao.contato.business.exportacoes.ExportaContatos" />
   </manifest>
   <fileset dir="${classes.dir}">
    <include name="**/*.*" />
    <include name="**/META_INF" />
   </fileset>
  </jar>
  <delete dir="${basedir}/extacao_contato/lib"/>
  <copydir dest="${basedir}/extacao_contato/lib" src="${basedir}/www/WEB-INF/lib">
  </copydir>
  <move file="${basedir}/GPadrao_ExtracaoContatos.jar" todir="${basedir}/extacao_contato/" />
  <copy file="${basedir}/connectionpool.xml" todir="${basedir}/extacao_contato" />
  <copy file="${basedir}/exporta_contato.bat" todir="${basedir}/extacao_contato" />

 </target>

</project>

segunda-feira, 25 de junho de 2012

cass-path webservices com AXIS2

Class-path webservice com AXIS2
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
 <classpathentry kind="src" path="src"/>
 <classpathentry including="activation.jar|ajaxtags-1.1.5.jar|antlr-2.7.6.jar|asm.jar|bonecp-0.7.1.RELEASE.jar|bonecp-provider-0.7.1-rc2.jar|cglib-2.1.3.jar|commons-beanutils.jar|commons-collections-3.2.jar|commons-fileupload-1.2.1-javadoc.jar|commons-fileupload-1.2.1-sources.jar|commons-fileupload-1.2.1.jar|commons-httpclient-3.0.1.jar|commons-io-1.4-javadoc.jar|commons-io-1.4-sources.jar|commons-io-1.4.jar|commons-lang-2.2.jar|commons-logging-1.0.4.jar|commons-logging-api.jar|commons-logging.jar|cos.jar|displaytag-1.1.jar|dom4j-1.6.1.jar|ehcache-1.2.3.jar|ejb3-persistence.jar|framework.jar|gson-1.7.1.jar|guava-11.0.1.jar|hibernate-annotations.jar|hibernate-commons-annotations.jar|hibernate-entitymanager.jar|hibernate3.jar|imap.jar|javassist.jar|jboss-archive-browsing.jar|jcommon-1.0.13.jar|jfreechart-1.0.10-experimental.jar|jfreechart-1.0.10.jar|jsdk-24.jar|jsdk23.jar|jstl.jar|jta.jar|jtds-1.2.jar|log4j-1.2.14.jar|mail.jar|mailapi.jar|mssqlserver.jar|poi-3.6-20091214.jar|poi-ooxml-3.6-20091214.jar|seguranca.jar|segurancaBI.jar|slf4j-api-1.6.4.jar|slf4j-log4j12-1.6.4.jar|smtp.jar|standard.jar|tbutils-wcf.jar|uploadbean.jar|wcf.jar|webutil.jar" kind="src" path="lib"/>
 <classpathentry kind="src" path="Test"/>
 <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.6.0"/>
 <classpathentry kind="lib" path="lib/bonecp-0.7.1.RELEASE.jar"/>
 <classpathentry kind="lib" path="lib/bonecp-provider-0.7.1-rc2.jar"/>
 <classpathentry kind="lib" path="lib/cglib-2.1.3.jar"/>
 <classpathentry kind="lib" path="lib/commons-beanutils.jar"/>
 <classpathentry kind="lib" path="lib/commons-io-1.4.jar"/>
 <classpathentry kind="lib" path="lib/commons-lang-2.2.jar"/>
 <classpathentry kind="lib" path="lib/ehcache-1.2.3.jar"/>
 <classpathentry kind="lib" path="lib/ejb3-persistence.jar"/>
 <classpathentry kind="lib" path="lib/framework.jar"/>
 <classpathentry kind="lib" path="lib/hibernate-annotations.jar"/>
 <classpathentry kind="lib" path="lib/hibernate-commons-annotations.jar"/>
 <classpathentry kind="lib" path="lib/hibernate-entitymanager.jar"/>
 <classpathentry kind="lib" path="lib/hibernate3.jar"/>
 <classpathentry kind="lib" path="lib/jta.jar"/>
 <classpathentry kind="lib" path="lib/log4j-1.2.14.jar"/>
 <classpathentry kind="lib" path="lib/webutil.jar"/>
 <classpathentry kind="lib" path="lib/ojdbc14.jar"/>
 <classpathentry kind="lib" path="lib/dom4j-1.6.1.jar"/>
 <classpathentry kind="lib" path="lib/asm.jar"/>
 <classpathentry kind="con" path="org.eclipse.jdt.junit.JUNIT_CONTAINER/4"/>
 <classpathentry kind="lib" path="/SolicitacoesNissan/WebRoot/WEB-INF/lib/commons-logging-1.0.4.jar"/>
 <classpathentry kind="lib" path="/SolicitacoesNissan/WebRoot/WEB-INF/lib/commons-collections-2.1.1.jar"/>
 <classpathentry kind="output" path="classes"/>
</classpath>