Páginas

sexta-feira, 20 de setembro de 2013

Certificacao OCJP

Olá tudo bem ?

Venho compartilhar com vocês o meu estudo para certificação OCJP (Oracle Certified Java Programmer) meu objetivo é tirar a certificação em Dezembro de 2013. Comecei os estudos mais precisamente na Terça-Feira dia 17/09 e para compartilhar o conteúdo criei um repositório no github.com quem se interessar para ver todo material é só fazer o fork do projeto, todos as classes estão comentada explicando cada assunto, se houver alguma dúvida é só postar nos comentário ou enviar um email, meu email: jardelrodrigues93@gmail.com quem tem esse objetivo podemos fazer uma "parceria" e dividi os assuntos a ser estudado, seria bem bacana =D;

Segue o link do projeto: Certificação OCJP


Obrigado a todos!

sábado, 7 de setembro de 2013

Criando repositório GitHub + Git + Eclipse

Olá tudo bem?

Segue o link abaixo da vídeo aula sobre como criar um repositório no GitHub importar para o Eclipse e depois fazer o clone com Git Bash, e atraves do Git Bash enviar os commit para o GitHub.



Obrigado pela visita = D

quarta-feira, 4 de setembro de 2013

Mapeamento de entidade ManyToMany

Olá tudo bem ?

Para concluir o post de mapeamento de entidade com hibernate, relacionamento ManyToMany (Muitos para Muitos).

Como exemplo vamos fazer um relacionamento entre Cliente e Produto.
Vários Cliente pode ter vários Produtos e vários Produto pode ter vários Clientes.

Crie um database no banco de dados chamada manytomany.
Crie um projeto Dynamic Web Project chamado MapeamentoManyToMany adicione as lib do hibernate no projeto e configure o arquivo persistence.xml para se comunicar com a database.

persistence.xml
















1.1 Crie uma classe chamada Cliente dentro do package br.com.vejajava.entidades
@Entity
@Table(name="cliente")
public class Cliente {

@Id
@GeneratedValue(strategy= GenerationType.AUTO)
private Long codigo;

private String nome;

@ManyToMany
@JoinTable(name = "cliente_produto", joinColumns = {@JoinColumn(name = "cod_cliente")}, 
inverseJoinColumns ={@JoinColumn(name = "cod_produto")})
private List produtos = new ArrayList();

//getters e setters
}

Observe que no mapeamento com a classe produto temos a anotação @JoinTable essa anotação é opcional, caso você não declare ela criará o nome da classe seguida de "_" mais um novo da classe que está sendo mapeada.

Veja que temos também a anotação @JoinColumns e @InverseJoinColumns elas define o quais colunas fazem parte da chave primaria.

1.2 Crie uma classe chamada Produto dentro do package br.com.vejajava.entidades
@Entity
@Table(name = "produto")
public class Produto {

@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long codigo;

private String descricao;

@Column(scale = 2, precision = 4)
private double preco;

//getters e setters
}
Observe a anotação @Column seguida de scale e precision.
A anotação scale: define a quantidade de casas decimais e anotação.
A anotação precision: define a quantidade de digitos que serão armazenados.

Como estamos mostrando um relacionamento Uniderecional a classe Produto nao terá o mapeamento para a classe Cliente.

1.3 Crie uma classe ManyToMany dentro do package br.com.vejajava.principal

Vamos adicionar alguns produtos e fazer o relacionamento com os clientes.

EntityManagerFactory factory = Persistence.createEntityManagerFactory("MapeamentoManyToMany");
EntityManager manager = factory.createEntityManager();

manager.getTransaction().begin();

Produto p1 = new Produto();
p1.setDescricao("Açucar");
p1.setPreco(1.50);

Produto p2 = new Produto();
p2.setDescricao("Macarrão Favorita");
p2.setPreco(1.50);

Cliente c1 = new Cliente();
c1.setNome("Maria");
c1.getProdutos().add(p1);
c1.getProdutos().add(p2);

Cliente c2 = new Cliente();
c2.setNome("José");
c2.getProdutos().add(p2);

manager.persist(p1);
manager.persist(p2);
manager.persist(c1);
manager.persist(c2);

manager.getTransaction().commit();

manager.close();
factory.close();

Verifique no banco de dados que foi criado três tabelas
Cliente: Temos dois cliente cadastrado.
Produto: Temos dois produtos cadastro
Cliente_Produto: Aonde o codigo do cliente se referencia ao codigo do produto, observe que no cliente Maria adicionamos dois produtos por isso na tabela ele faz o relacionamentos para os dois produtos cadastrado.

mysql> select * from cliente;
+--------+-------+
| codigo | nome |
+--------+-------+
| 1 | Maria |
| 2 | José |
+--------+-------+

mysql> select * from produto;
+--------+--------------------+-------+
| codigo | descricao | preco |
+--------+--------------------+-------+
| 1 | Açucar | 1.5 |
| 2 | Macarrão Favorita | 1.5 |
+--------+--------------------+-------+

mysql> select * from cliente_produto;
+-------------+-------------+
| cod_cliente | cod_produto |
+-------------+-------------+
| 1 | 1 |
| 1 | 2 |
| 2 | 2 |
+-------------+-------------+


Obrigado pela visita = D

segunda-feira, 2 de setembro de 2013

Primeiros passos utilizando Controle de Versão Git

Olá tudo bem ?

Nesse post irei falar um pouco sobre o controle de versão Git, o objetivo desse post é mostrar alguns comandos básico para começar a utilizar git.

Instalação

Windows:
https://code.google.com/p/msysgit/downloads/list?can=3

Baixe o arquivo Git Preview e siga os passo a passo da instalação.

Next >
Escolha o local pra ser instalado >
Marque a opção Context menu entries para que ele gere o Git Bash e Git Gui >
Next >
Marque a terceira opção Run Git And inclued unix... para que o git possa ser utilizado tambem no prompt de comando >
Marque a terceira opção Checkout as-is commit as-is >
Instalação concluida.


Geração de chaves públicas

//Gerar par de chave
ssh-keygen

//Cria no diretório do seu usario dus chaves id_rsa e id_rsa.pub
//Arquivo id_rsa é a chave privada a chave privada garante que só voce pode abrir algum arquivo especifico, 
//já a chave publica id_rsa.pub pode ser compartilhada com outros desenvolvedores.

//Depois de criar as chaves publica voce pode escolher uma senha para quando for utilzar uma chave pública (opcional)

//Para gerar sua chave publica execute
cat ~/.ssh/id_rsa.pub

Irá gerar algo como:

ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEApWFJ+ChIJB1LrWRWECFhCbPI/crhCcT6cpZaiTkuibMO
/vteUWO3uk3laX/8/Oya7jEEILLFaUAVGStoAOJbhXA2GjAnV4SiuNHDGQHEyzZ8T4z5FF5KtA2cswTl
Ve64QZm+rnzMQ6EuI2g7WrgP+X+seqdi8i5561NOZ0fg5tFsnVtIOpX9Pp6yVYJmXRuxgzDpZ8ZNwgcv
1+WXNMrIINUuojDNG92aee9BwXDPzw6DX1umPSojNv6thsyivxAqeHBejO9QSRxSJgimoGVPHxEtR4SV
tLKGpmlz9bsxGJTiUMjjAA9llV0zI4YURrA8QKGAxUBHlGwmPwg1tMYdbw== JardelJava@JARDEL-J

//A chave publica é utilizada para adicionar em uma conta no github, repositório remoto usa ssh para se comunicar.

Alguns comandos básico do git:

//É preciso definir nome e email para poder utilizar o git
git config --global user.name 'seunome'
git config --global user.email 'seuemail@email.com'

//Criar um novo repositório 
git init

//Verifica todos os arquivos que já foi colocado no índice ou que ainda não foram colocados.
//Arquivos verde: Foi adicionado no índice
//Arquivos vermelho: Não foi adicionado no índice
git status

//Clonar um repositorio
https:/github.com/caminho/repositorio.git

//Adiciona repositório local do github
git remote add origin git@github.com:nome/repositorio.git

- Repositório

- Índice

- Working Area

//Adiciona os arquivos para dentro do índice
git add (arquivo)

//Adiciona todos os arquivos para dentro do índice
git add .

//Pega o que está dentro do índice e joga para o repositório
git commit -m 'mensagem'

//Retira arquivo novo do índice
git rm --cached

//Retira arquivo modificado do índice
git reset HEAD

//Ver arquivo alterado que ainda nao foi selecionado
git diff

//Ver o que selecionou para ser commitado
git diff --cached

//Descarta arquivos que ainda não foi adicionado no índice
git clean -f

//Retira arquivo que já existia no repositório que estava no índice
git checkout

//Histórico de todos commit
git log

//Adiciona os arquivos no commit anterior
git commit -m 'mesmocommit' --amend

//Apaga o último commit
git reset HEAD~1 --hard

//Guarda todos os arquivos apagados
git reflog

ex:
76fk2c 
11bd4h
34g6hb

//Recupera commit apagado
git merge 76fk2c

//Para enviar alterações feitas ao seu repositorio remoto
git push origin master

//Atualiza arquivos do repositório
git pull

//Pega os arquivos do projeto que ainda nao foi adicionado no servidor remoto origin
git fetch origin 

//interface gráfica
gitk

Obrigado pela visita =D