Estágio

Estou animado para programar e aprender ainda mais, vou começar um estágio em uma empresa de desenvolvimento e as expectativas estão a mil e gostaria de compartilhar com vocês o conhecimento que vou adquirir, então, conforme meu aprendizado, irei postando aqui as partes mais cruciais e interessantes, tomara que surjam bons tópicos sobre programação web, frameworks e padrões.

 

Espero que tudo ocorra bem, me desejem sorte!

CategoriasNotícias

Tutorial Hibernate – Parte 2

Vamos lá pessoal, continuando nosso tutorial de introdução ao Hibernate, a primeira parte desse tutorial pode ser visualizada aqui.

Agora que temos a primeira classe mapeada, estamos prontos para configurar nosso Hibernate (você já deve ter noções de Banco de dados e SQL e um banco de dados pronto para ser usado, é recomendando que você entenda sobre o conceito de ACID).

 

Hibernate.cfg.xml

 

O Hibernate usa um arquivo .XML para definir suas configurações, tais como endereço da base de dados, login, senha, parâmetros gerais e classes mapeadas. Esse arquivo é quase sempre o mesmo, mudando apenas quando algumas outras configurações mais detalhadas se fazem necessárias, o arquivo deve possuir esse nome e costuma ficar na pasta source (src) do projeto, pois assim evita-se de ter que citar seu nome e diretório.

Arquivo de configuração do Hibernate

Os parâmetros representam, em ordem:

  • Driver_class: A classe do driver, no caso do exemplo ele irá buscar dentro da biblioteca do conector MySQL, por isso é importante que ela esteja presente no projeto.
  • Url: Endereço do banco de dados.
  • Username: Login do banco de dados.
  • Password: Senha do banco de dados.
  • Dialect: O dialeto informa ao Hibernate com qual banco de dados ele está trabalhando, como a sintaxe da linguagem muda de SGBD para SGBD, ele precisa saber com qual está trabalhando para executar suas funcionalidades corretamente.
  • Class: Representa a classe que possui os atributos mapeados para que o Hibernate faça sua leitura e trabalhe com aquela classe, no caso desse exemplo, a classe Pessoa dentro do pacote model está mapeada, para mapear várias classes basta repetir esse parâmetro mudando ou não apenas o pacote e/ou nome da classe.

Arquivo de configurações do Hibernate pronto! Agora vamos fazer com que ele crie as tabelas a partir das nossas entidades mapeadas, para isso, geralmente, usa-se uma classe executável, veja abaixo:

Classe executável para criar tabelas usando SchamaExport

Primeiramente, cria-se um objeto do tipo AnnotationConfiguration (existem outros tipos de configurações) e usa-se o método configure() desse objeto, o método configura o objeto com os parâmetros do arquivo hibernate.cfg.xml. Esse método possui várias assinaturas, quando usa-se SEM nenhum parâmetro, o mesmo busca o arquivo hibernate.cfg.xml na pasta source (caso do nosso exemplo), caso o arquivo de configurações possua outro nome e/ou esteja em outro diretório, o diretório deve ser passado como parâmetro para o método.

Agora nosso objeto está configurado e pronto para uso, criamos um objeto SchemaExport passando nosso objeto de configuração no construtor para que o nosso novo objeto tenha as configurações necessárias para funcionar, depois usamos o método create(boolean script, boolean export) para criar as tabelas e pronto, as tabelas já deverão estar no banco de dados.

Estamos quase lá, falta pouco para começarmos a realizar operações de CRUD, mas, antes de prosseguirmos vamos falar um pouco sobre Sessões, Fábrica de Sessões e Transação:

  • Sessão (Session): Possibilita a comunicação entre a aplicação Java e a persistência.
  • Fábrica de Sessões (SessionFactory): Mantém o mapeamento objeto relacional em memória, também serve para gerar sessões.
  • Transação (Transaction): É utilizada para representar uma unidade indivisível (atômica) de uma operação de manipulação de dados.

Objetos do tipo Session e Transaction não são pesados, mas objetos do tipo SessionFactory são muito pesados, então a aplicação não deve possuir mais de um (a não ser em casos especiais).

 

HibernateUtil

 

Essa é a última classe que vamos criar antes de começar a “brincar”, o HibernateUtil é uma classe que possui uma SessionFactory, através dela criamos as sessões para realizar operações, a IDE Netbeans já possui uma classe HibernateUtil padrão implementada, basta cria-la em Arquivo -> Novo Arquivo -> Hibernate -> HibernateUtil, veja abaixo a implementação:

Classe HibernateUtil em Java

Fala por si só né? Possui uma SessionFactory estática que é inicializada na primeira chamada da classe, parar ser instanciada usa uma configuração da mesma que usamos no SchemaExport, a partir dai nós a usamos a partir do método estático getSessionFactory().

ATÉ AGORA TÁ MUITO CHATO!!!!!

Calma, calma, agora sim, podemos “brincar” com operações de CRUD.

 

Fazendo inserções

 

Agora é simples, precisamos apenas usar nossa SessionFactory para criar sessões e a partir dela realizarmos operações, veja abaixo a implementação de um método simples de salvar:

Método simples de inserção de dados através do Hibernate

Veja o que acontece nesse método:

  • Criamos uma sessão a partir do método openSession() da nossa SessionFactory.
  • Criamos uma transação a partir da nossa recém-criada sessão.
  • Iniciamos a transação com o banco de dados (toda transação precisa ser iniciada para funcionar).
  • Usamos a sessão para salvar nosso objeto.
  • Executamos commit na transação (o commit finaliza a transação executando todas as ações realizadas na sessão que a criou, diferentemente do rollback, que finaliza a transação cancelando todas as ações, por isso a transação é atômica, não pode ser realizada apenas uma das ações de seu tempo de vida, ou são todas realizadas ou nenhuma será).
  • Por último, porém não menos importante, fechamos a sessão (sessões não devem ficar abertas).

Aqui encerramos a Parte 2 do nosso Tutorial sobre Hibernate, na Parte 3 vamos ver como atualizar, remover e realizar consultas.

Mudar visual do Swing do Java

Muita gente reclama que não gosta da ferramenta gráfica do java, o Swing, dizem que o mesmo é muito feio e quadrado e que não dá pra fazer uma aplicação “bonita” com ele, então, por mais que a programação stand-alone esteja saindo de cena, ai vai um mini-tutorial de como fazer para alterar o LookAndFeel do Swing e fazê-lo usar o mesmo do sistema operacional onde a aplicação está rodando. (LookAndFeel é um termo usado em relação a interface gráfica do usuário, onde o Look representa o visual e o Feel o comportamento).

Veja na imagem um simples form usando Swing com o visual padrão:

Swing com visual padrão

Então, para deixar o Swing com a cara mais amigável (a cara do sistema operacional), basta adicionar o seguinte código na classe principal da GUI.

Código para que o Swing use o visual do S.O.

São usados 3 métodos;

  • UIManager.setLookAndFeel: modifica o visual do Swing.
  • UIManager.getSystemLookAndFeelClassName: retorna o visual do sistema operacional em questão (o nome da classe que representa esse visual).
  • SwingUtilities.updateComponentTreeUI: aplica o visual em todas as UI que forem abertas a partir daquela.

Veja o resultado:

Swing usando o visual do Windows 7

Simples e bonito, agora muita gente não vai ter mais do que reclamar.

CategoriasGUI, Java, Swing, Tutoriais

Tutorial Hibernate – Parte 1

julho 28, 2011 1 comentário

Quando meus estudos sobre Hibernate começaram, foi um pouco chato de achar uma fonte de estudo recente, cheguei até a, por engano, estudar versões antigas do Hibernate, onde o mapeamento de atributos das classes eram feitos através de arquivos .XML. Motivado por isso, estou iniciando um simples tutorial, que será compartilhando através de 2 ou 3 partes, que ensina o básico sobre o Hibernate com Anotações. Espero que isso facilite o entendimento de quem deseja aprender sobre esse Framework de mapeamento objeto-relacional que possui versões para Java e .NET (NHibernate).

 

Tá, o Hibernate é um Framework de Mapeamento Objeto-relacional, legal, mas o que isso quer dizer mesmo?

 

Quer dizer que o Hibernate facilita o mapeamento de atributos de uma base tradicional de base tradicionais (ex.: MySQL) e o modelo objeto de uma aplicação (ex.: Bean), transforma classes em Java para tabela de dados sem o programador ter que usar linguagem SQL tanto para criar as tabelas, como para povoa-las, atualiza-las e consulta-las , a linguagem usada pode ser apenas Java (mas usar SQL não se torna impossível) economizando assim muitas horas de SELECT, FROM, WHERE, além de café e doril.

 

Massa cara, isso tudo parece ser maravilhoso, não consigo imaginar como seria lindo trabalhar com banco de dados sem ter que usar uma linha de SQL, me ensine ai.

 

Ok, lets move.

O seguinte tutorial serve tanto para Eclipse como para Netbeans.

 

Pacote Hibernate

 

Você pode baixar o Hibernate através deste link.

O Hibernate usa várias outras bibliotecas para executar suas funcionalidades, veja abaixo:

APIs necessárias para usar o Hibernate

Atenção especial para 3 bibliotecas:

  • Mysql-connector-java-5.1.12-bin: o conector do banco de dados em questão (no caso do exemplo, MySQL), sem ele, o Hibernate não consegue se conectar a base dados para executar suas funcionalidades e ele não vem no pacote do Hibernate, deve ser adicionado por fora.
  • Slf4j: destacam-se porque ambas devem possui a mesma versão, caso contrário o Hibernate gerará erros na hora de sua execução.

Tendo baixado e importado todas as bibliotecas, vamos ao próximo passo.

 

Hello, Hibernate! – Mapeando a primeira classe

 

Tá, agora a coisa realmente começa a ficar interessante, pois começaremos a ver o Hibernate em ação.

Vamos criar e mapear a classe Pessoa, essa classe será composta de 4 atributos, serão eles: id, nome e e-mail. Veja a classe abaixo:

Classe Pessoa sem o mapeamento com anotações

Quando se usa o Hibernate com Annotations (anotações) se faz necessário anotar (mapear) cada atributo do bean (Classe), para que o framework saiba o que é entidade, tabela, id, colunas, datas, e também as estratégias de uso.

As Anotações mais usadas são:

  • @Entity – Informa que a classe mapeada é persistente.
  • @Table – Informa o nome da tabela, e caso necessário, o esquema.
  • @Id – Define chave primária.
  • @GeneratedValue – Define mecanismo para gerar a chave primária. – GenerationType define a estratégia de geração.
  • @Column – Informa o nome da coluna mapeada para o atributo, se ela pode ser nula ou única.
  • @Temporal – Usada para mapear datas e/ou horas.

Veja a mesma classe mapeada:

Classe Pessoa mapeada com anotações

Repare que nem sempre todos os parâmetros de cada anotação precisa ser preenchido, pois possuem valores padrões, por exemplo, na anotação @Column por padrão o nome da coluna é o nome do atributo, o null é aceito e o atributo não é único, só é necessário modifica-los caso aja necessidade, e nem todos os atributos precisam ser mapeados.

E é por aqui que encerramos a primeira parte, na segunda parte iremos ver como configurar o Hibernate, criar as tabelas e fazer inserções.

Brasileiro conquista Ouro na Olimpíada Internacional de Informática

Nesta terça-feira (26) o estudante brasileiro Felipe Abella Cavalcante Mendonça de Souza, da Universidade Federal de Campina Grande, conquistou a primeira medalha de ouro do país na Olimpíada Internacional de Informática (IOI). A entrega da medalha será feita no próximo dia 28 durante a festa de encerramento da 23º edição da IOI, que acontece este ano na Tailândia.

Felipe Abella trouxe o primeiro ouro brasileiro da competição (Foto: Divulgação)

Nos dois dias de provas, os participantes tiveram que resolver, sozinhos, quatro problemas computacionais (relacionados essencialmente a algorítmos) em até cinco horas. Para isso, cada estudante precisava criar aplicativos em C, C++ ou Pascal sem a ajuda de ninguém, e no final cada programa era testado e avaliado pelas respostas corretas que davam.

Felipe Abella conquistou 598 pontos de 600 pontos máximos das Olimpíadas, ficando em 3º lugar no ranking geral, o que garantiu ao estudante a medalha de ouro. Acima dele há apenas outros dois estudantes, da Bielorrúsia e da China.

Além do ouro, os outros três integrantes da delegação brasileira também trarão outras três medalhas de bronze para o país. São eles: Caíque Lira (Colégio Farias Brito/Fortaleza), com 327 pontos; Renato Pinto Junior (Colégio Objetivo/São Paulo), com 365 pontos; e Marcos Kawakami (Colégio Etapa/São Paulo), com 360 pontos – todos selecionados pelos seus desempenhos na última Olimpíada Brasileira de Informática.

Com o somatório de pontos, os brasileiros conquistaram uma colocação à frente de países como Inglaterra, França, Canadá, Alemanha, Espanha e Argentina. Saiba mais sobre o evento no site oficial do IOI 2011, em http://www.ioi2011.or.th.

Fonte: Techtudo

Parabéns Felipe, Caíque, Renato e Marcos, não é uma conquista fácil, no mínimo vocês estudaran muito e mereceram.

Olá, mundo!

julho 28, 2011 2 comentários

Nós, da área da informática, por mais que saibamos sobre algum assunto, temos que estar sempre aprendendo mais e nos atualizando sobre novas tecnologias ou aprimorando o conhecimento que já temos, boa parte disso é feito através da leitura, estamos sempre lendo e lendo inúmeros livros (alguns bons, outros, nem tanto), como acabei de criar o blog e estou sem assunto para o primeiro post, vou aproveitar que vejo muita gente pela web perguntando sobre com qual livro começar a estudar Java e dar uma dica de livro para quem está iniciando em Java.

Core Java - 8ª edição

O Core Java é um ótimo livro para aprendizado e pesquisa, possui ótimo conteúdo escrito de maneira simples, muito fácil de aprender, preço acessível e é facilmente encontrado. Passei boas horas com ele quando estava iniciando em Java e aprendi bastante sem me entediar com a leitura. 100% recomendado, vale cada centavo.

CategoriasDicas, Livros Tags:,
Seguir

Obtenha todo post novo entregue na sua caixa de entrada.