terça-feira, 30 de setembro de 2014

Cursos Técnicos Gratuitos

Olá pessoal, uma dica legal pra quem está começando, são os cursos técnicos das Etecs, relacionados a TI temos várias opções como: Informatica, Comunicação Visual, Informatica para Internet, Manutenção e Suporte a Informatica, Programação de Jogos Digitais, Rede de Computadores e muitos outros que podem ser conferidos no site: http://www.centropaulasouza.sp.gov.br/cursos/etec .

Eu fiz dois cursos Técnicos e digo que com certeza vale a pena, o aprendizado é enorme, e já é uns pontos a mais no currículo né?!

As inscrições para os cursos começam agora dia 02/10 e vão até as 15h do dia 07/11, no site http://www.vestibulinhoetec.com.br , qualquer duvida é só ligar lá ou entrar no Site.

Instalando o Apache Tomcat no Linux e configurando no Eclipse

Apache Tomcat

O Apache Tomcat, conhecido no popular como servidor web Java ou container, é o que gerencia e roda o Servlet. Como tenho utilizado bastante ele. Vou ensinar hoje como instalar e configurar o mesmo. Eu estou usando a versão 7 do  Apache Tomcat.

Instalando o Tomcat

Acesse o link dowload Tomcat para fazer o download do programa. Escolha a versão do instalador, que vai depender do sistema operacional que estiver utilizando.


Concluindo o download, abra o terminal do linux entre no diretório em que o arquivo foi baixado. E execute o comando: tar -xzvf NOME_ARQUIVO.tar.gz
Sendo o NOME_ARQUIVO.tar.gz o nome do arquivo baixado no site do Tomcat.
Este comando irá descompactar o arquivo e criar uma pasta no diretório.

Para testar o Apache Tomcat acesse a pasta bin dentro do diretório extraído e execute o seguinte comando pelo terminal:
 sh startup.sh

Acesse a página inicial do Tomcat no navegador: http://localhost:8080:

Configurando o Apache Tomcat no Eclipse:

Agora iremos configurar o Tomcat no Eclipse. Para isso abra o Eclipse e acesse o menu Window > Preferences > Server > Runtime Environments e clique em Add:

Selecione Apache > Apache Tomcat v7.0 que é a versão que foi baixada e clique em Next:

Informe em Tomcat installation directory o local aonde foi extraído o Tomcat e clique em Finish:

Depois disso na aba Servers será criado uma nova configuração para o Apache Tomcat Server, e depois disso basta apenas inciar o Apache Tomcat Server:

Ao iniciar o Tomcat você terá a seguinte saída no console do Eclipse:


Pronto! Apache Tomcat Server instalado e configurado no Eclipse.

Instalando o Git

Para instalar o Git no Linux, é bem simples.
Abra o terminal, digite o comando:
sudo apt-get install git
passowd: sua_senha

Em seguida vai aparecer uma mensagem como:

"É preciso baixar 3.274 kB de arquivos.
Depois desta operação, 21,6 MB adicionais de espaço em disco serão usados.
Você quer continuar? [S/n] "


Você digita: 's'

Assim que concluir, configure o mesmo com nome e e-mail:
Digitando os seguintes comandos:
git config --global user.email "seuemail@exemplo.com"
git config --global user.name "Seu nome e sobrenome"

Prontinho o Git está instalado e configurado na sua máquina, agora é só comitar seus projetos.


segunda-feira, 22 de setembro de 2014

CascadeType.

O CascadeType é uma maneira de definir a forma como serão propagadas as operações em cascata de uma Entity para suas referencias. A vantagem do Cascade é a propagação automaticamente da ação configurada nos relacionamentos da entidade.
As definições do Cascade são passadas dentro das anotações @OneToOne, @OneToMany e @ManyToMany, e as possibilidades de valores para o Cascade podem ser encontradas dentro de um enum javax.persistence.CascadeType.

Tipos:
  • CascadeType.PERSIST– disparado toda vez que uma nova entity for inserida no banco de dados pelo comando entityManager.persist();
  • CascadeType.DETACH – disparado toda vez que uma entity é retirada do Persistence Context. Comandos que podem disparar essa ação: entityManager.detach(), entityManager.clear(). Ocorrerá um detach também quando o Persistence Context deixar de existir;
  • CascadeType.MERGE – disparado toda vez que uma alteração é executada em uma entity. Essa alteração pode acontecer ao final de uma transação com a qual uma managed Entity foi alterada (4.2), ou pelo comando entityManager.merge();
  • CascadeType.REFRESH – disparada quando uma entity for atualizada com informações no banco de dados. Comando: entityManager.refresh();
  • CascadeType.REMOVE – disparado quando uma entity é removida (apagada) do banco de dados, os relacionamentos marcados também serão eliminados O comando utilizado é o entityManager.remove();
  • CascadeType.ALL – todos os eventos anteriores serão sempre refletidos nas Entities relacionadas.


Exemplo para setar apenas um tipo de Cascade:

@OneToMany(cascade = CascadeType.ALL)
private List
usuarios;

Exemplo para setar um ou mais tipos, (porém não todos):

@OneToMany(cascade ={CascadeType.MERGE, CascadeType.PERSIST, CascadeType.REMOVE })
private List usuarios;



Observações sobre o Cascade:

  • É preciso ter bastante cuidado ao anotar um relacionamento com CascadeType.ALL. Uma vez que se a entidade fosse removida o seu relacionamento também seria removido do banco de dados.
  • CascadeType.ALL (ou opções únicas) pode causar lentidão em todas as ações realizadas na entidade. Caso a entidade tenha muitas listas um merge() poderia causar todas as listas a receberem merge().

sábado, 20 de setembro de 2014

O que é JPQL?

Consultas são tão importantes quanto armazenamentos de dados, por esse motivo é que é importante ter uma maneira flexível de acessar dados. Ai é que entramos no assunto JPQL. A JPQL é uma linguagem de consulta ORM que opera sobre classes e objetos, diferente do SQL que opera sobre tabelas. Ela é também uma especificação da JPA, e apesar de trabalhar com entidade (classes) é uma linguagem bem semelhante a SQL. Uma das vantagens da JPQL é que a mesma consulta pode ser executada em todos os bancos de dados.

O que é JPA?



O JPA nada mais é do que um conjunto de especificações (muitos textos, normas e interfaces do Java) de como uma implementação deve se comportar. Existem diversas implementações no mercado que seguem as especificações do JPA. Podemos citar o Hibernate, OpenJPA, EclipseLink e o “recente” Batoo.
As implementações tem a liberdade de adicionar anotações e códigos a mais que desejarem, mas tem que implementar o básico que o JPA requeira.
O que o JPA nos propõem, é que seja possível trabalhar diretamente com as classes e não ter que utilizar as consultas nativas de cada banco de dados; o JPA irá fazer esse trabalho pelo desenvolvedor.

sexta-feira, 12 de setembro de 2014

O que é um DAO?

DAO significa Data Access Object. É uma estratégia de implementação que tem como objetivo separar a lógica de acesso a dados das regras de negócio de sua aplicação.
É um padrão para persistência de dados, por exemplo em uma aplicação que utilize a arquitetura MVC, todas as funcionalidades de bancos de dados, tais como obter as conexões, mapear objetos Java para tipos de dados SQL ou executar comandos SQL, devem ser feitas por classes DAO. A  ideia é escrever o código de acesso a dados em uma classe separada que implemente uma interface. Fazendo assim com que o resto do seu sistema tenha acesso direto apenas a esta interface.

Quais as vantagens?

A vantagem de usar objetos de acesso a dados é a separação simples e rigorosa entre duas partes importantes de uma aplicação que não devem e não podem conhecer quase que nada uma da outra, e que podem evoluir frequentemente e independentemente. Alterar a lógica de negócio pode esperar apenas a implementação de uma interface, enquanto que modificações na lógica de persistência não alteram a lógica de negocio, desde que a interface entre elas não seja modificada.


  • Pode ser usada em uma vasta porcentagem de aplicações;
  • Esconde todos os detalhes relativos a armazenamento de dados do resto da aplicação;
  • Atua como um intermediário entre a aplicação e o banco de dados;
  • Mitiga ou resolve problemas de comunicação entre a base de dados e a aplicação, evitando estados inconsistentes de dados.


Como mostrado no diagrama, a abordagem escolhida é isolada ao DAO, enquanto apenas os métodos de acesso a dados pertinentes estão expostos através da interface. Em  um projeto que implemente o DAO, é bastante fácil de trocar de uma implementação para outra com um impacto mínimo para a sua aplicação.


Melissa Lobo.

O que é uma Taglib?

Uma Taglib é nada mais nada menos que uma biblioteca de tags customizadas que são utilizadas na  Taglib é nada mais nada menos que uma biblioteca de tags customizadas que são utilizadas na composição de páginas JSP. Podemos dizer que uma Taglib é uma biblioteca de “classes Java” que são utilizadas “na forma de tags” para auxiliar na geração de conteúdo dinâmico em uma página JSP.


Melissa Lobo.

sábado, 6 de setembro de 2014

Relacionamento OneToOne

Confesso que sempre me confundo um pouco com os relacionamentos do Hibernate, por isso hoje vou falar do Relacionamento @OneToOne (com annotation) e posteriormente sobre os demais.

Relacionamento convencional @OneToOne

O relacionamento convencional um-para-um trata-se de um relacionamento onde os atributos das entidades relacionadas serão persistidas em tabelas distintas. O relacionamento das classes Pessoa e Endereço em um relacionamento convencional um-para-um é declarado da seguinte forma:

package testes;
import javax.persistence.*;
@Entity
public class Pessoa {
@Id@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome;
@OneToOne(cascade = CascadeType.ALL)
private Endereco endereco;
//get's e set's
}

package testes; 
import javax.persistence.*;
@Entity
public class Endereco { 
@Id@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String logradouro;
@OneToOne(mappedBy = "endereco")
private Pessoa pessoa;
//get's e set's
}

O annotaion @OneToOne(mappedBy = "endereco") serve para indicar um relacionamento bidirecional, informando que Endereço é o final do relacionamento entre Pessoa-Endereço e que é mapeado em Pessoa pelo atributo endereço. Ou seja, a tabela Pessoa terá a chave estrangeira para Endereço. Com esses Annotations, o Hibernate irá criar duas tabelas: Pessoa e Endereço com os seguintes atributos:

Pessoa
id bigint not null
nome varchar(255)
endereco_id bigint

Endereco
id bigint not null
logradouro varchar(255)

Podemos também declarar um relacionamento unidirecional. Para isso basta não declarar o atributo Pessoa em Endereço:
package testes; 
import javax.persistence.*; 
@Entity
public class Endereco { 
@Id@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String logradouro;
//get's e set's}



Embedded

O relacionamento "embedded one-to-one" trata-se de um relacionamento onde os atributos das entidades relacionadas serão persistidas na mesma tabela.
Por exemplo temos uma classe Pessoa que tem um relacionamento um-para-um com a classe Endereço, esse relacionamento será definido da seguinte forma:

package testes;
import javax.persistence.*;
@Entity
public class Pessoa { 
@Id@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String nome; 
@Embedded
private Endereco endereco;
//get's e set's
}

package testes;
import javax.persistence.Embeddable;
@Embeddable 
public class Endereco {
private String logradouro;
//get's e set's
}

Com esses 'Annotations', o Hibernate irá criar uma tabela Pessoa com os seguintes atributos:

id bigint not nulllogradouro varchar(255)
nome varchar(255)  


Hibernate e JPA

O Hibernate é uma ferramenta ORM open source e é a líder de mercado, sendo a inspiração para a especificação Java Persistence API (JPA). O Hibernate nasceu sem JPA mas hoje em dia é comum acessar o Hibernate pela especificação JPA. Como toda especificação, ela deve possuir implementações. Entre as implementações mais comuns, podemos citar: Hibernate da JBoss, EclipseLink da Eclipse Foundation e o OpenJPA da Apache. Apesar do Hibernate ter originado a JPA, o EclipseLink é a implementação referencial.

O Hibernate abstrai o seu código SQL, toda a camada JDBC e o SQL será gerado em tempo de execução. Mais que isso, ele vai gerar o SQL que serve para um determinado banco de dados, já que cada banco fala um "dialeto" diferente dessa linguagem. Assim há também a possibilidade de trocar de banco de dados sem ter de alterar código Java, já que isso fica de responsabilidade da ferramenta.