0

Persistência de Objetos com Hibernate (Parte 03)

logoHibernate

Persistência de Objetos com Hibernate (Parte 03)

Para testarmos as implementações realizadas na parte 1 e na parte 2 da postagem sobre Persistências de Objeto com Hibernate separei um main com as rotinas implementadas. Até aqui o projeto tem a seguinte estrutura:

 

prjHibernate

Para finalizar a primeira parte de postagens sobre o Hibernate e o seu poder em mapear e persistir objetos, em breve adicionarei mais temas relacionados ao hibernate, tais como relaciomentos, consultas com Criteria entre outros. Espero ter ajudado de alguma forma com essas postagens simples porém funcional. rsrs…

Testando o Projeto

Veja também as postagens anteriores:

0

Persistência de Objetos com Hibernate (Parte 02)

logoHibernatePersistência de Objetos com Hibernate (Parte 02)

Na postagem anterior vimos como mapear uma classe persistente e o como implementar o arquivo de configuração do Hibernate. Nesta postagem partiremos para a implementação do HibernateUtil que será a classe responsável por estabelecer uma sessão de conexão com a base de dados e criaremos a classe PesssoaDAO com as rotinas de banco referentes a classe de persistência PessoaVo.

Classe HibernateUtil

A classe HibernateUtil.java é disponibilizada com o Hibernate para ajudar o programador a criar os objetos Session responsáveis por fazer a persistência dos objetos. Segue a implementação da classe.

 Classes PessoaDAO e ContatoDAO

As classes PessoaDAO e ContatoDAO serão implementadas com as rotinas de banco. Seguem as mesma:

PessoaDAO.java

ContatoDAO.java

 Agora além das classes persistentes, do hibernate.cfg.xml, do HibernateUtil temos também definidos os DAOs do nosso projeto. Na próxima postagem colocarei um main para teste da estrutura criada.

0

Persistência de Objetos com Hibernate (Parte 01)

logoHibernatePersistência de Objetos com Hibernate (Parte 01)

Está é a primeira parte de uma série de postagens que farei sobre o Framework Hibernate, demonstrarei a facilidade de utilização deste framework para persistências de objetos em banco de dados relacionais.

Introdução ao Hibernate

O Hibernate é um framework que provê a persistências de objetos Java em um banco de dados relacional. Este framework oferece recursos que facilitam o mapeamento do modelo orientado objetos para modelo relacional fazendo uso de um processo chamado de MOR (Mapeamento Objeto Relacional). Mesmo trabalhando com a persistência de objetos estamos trabalhando um SGBD relacional.

Para iniciarmos neste framework um exemplo básico de agenda com duas Classes.

diagrama_exemplo

Configuração do Hibernate:

  • Configuração do Classpath

Utilizarei as seguintes bibliotecas:

      • antlr-2.7.7.jar
      • dom4j-1.6.1.jar
      • hibernate-commons-annotations-4.0.2.Final.jar
      • hibernate-core-4.2.7.SP1.jar
      • hibernate-jpa-2.0-api-1.0.1.Final.jar
      • javassist-3.18.1-GA.jar
      • jboss-logging-3.1.0.GA.jar
      • jboss-transaction-api_1.1_spec-1.0.1.Final.jar
      • mysql-connector-java-5.0.3-bin.jar

Caso não possua as mesmas clique aqui para baixar as dependências do Hibernate e clique aqui para baixar o drive do mysql. Não se esqueça de colocar os .jars em seu classpath.

  • Mapeamento dos Objetos

No Hiberante podemos usar duas técnicas para mapear objetos através do uso de XML ou através de Anotations que é a forma que utilizaremos. No mapeamento XML é  preciso acrescentar estes arquivos XML de mapeamento no arquivo hibernate.cfg.xml, para indicar a localização física de cada um deles.

      • Mapeando a Classe PessoaVo

      • Mapeando a Classe ContatoVo

 

Descrição das Anotations:

@Entity - Representa uma classe de persistência, toda classe que represente uma tabela no banco de dados deve ser anotada com essa anotação.

@Table - Anotação responsável por dizer qual tabela no banco de dados a classe irá representar.

@Id – Indica o atributo chave da tabela.

@GenedatedValue – Indica que o atributo chave é auto_incement no caso do mySQL e Sequence no caso do Postgres.

@OneToMany – Representa um relacionamento 1 para muitos.

Arquivo de Configuração hibernate.cfg.xml

O Arquivo de configuração hibernate.cfg.xml deverá está presente no diretório src do seu projeto, nele estão mantidas algumas configurações de conexão tais como: host, usuário, senha e até os objetos mapeados como classes persistentes.

Segue a Implementação do Arquivo:

Classes Persistentes

As classes persistentes representam os “Vo”s que serão persistidos na base de dados, no nosso caso seriam PessoaVo e ContatoVo. O Hibernate associará estas classes a uma tabela referente a mesma no banco.

Na segunda parte veremos a camada DAO e a configuração de Session do Hibernate. Até a próxima.

0

Imagens no MySQL

logo_mysql_gr

Trabalhando com Imagens no MySQL

Nesta postagem veremos uma forma de se trabalha com o armazenamento de imagens no MySQL. Para isso devemos conhecer um pouco o tipo de dado BLOB.

Tipos de Campo Blob (Binary Large Object)

Os campos de tipo blob são campos criados para armazenar qualquer tipo de informação em formato binário dentro de uma tabela no banco de dados. Os campos BLOBs na verdade são campos do tipo TEXT sendo que o BLOB não são case-sensitive como os campos de tipo TEXT.

Restrições dos campos BLOB

  • Não podem ser chaves primárias (excluindo Tinyblob);
  • Não é possível usar os comandos GROUP e SORT com campos blob;
  • São reconhecidos como um LONGVARCHAR para drivers ODBC.

No MySQL existem 4 definições de campos BLOBs, seguem elas:

  • TINYBLOB - armazena 255 caracteres (8 bits) mais 1 de controle;
  • BLOB - armazena até 16535 caracteres (16 bits) mais 2 de controle;
  • MEDIUMBLOB - armazena até 16777216 caracteres (24 bits) mais 3 de controle;
  • LONGBLOB - armazena até 4294967295 caracteres (32 bits) mais 4 de controle.

Criando uma tabela para armazenar imagens

 Inserindo uma imagem na tabela

Note que utilizo o LOAD_FILE para buscar um arquivo no diretório c:/tmpfotos, ao executar o insert é salvo na base o binário da foto.

Selecionando e salvando em um Diretório

Para buscar e salvar a foto em um diretório verifique se o usuário tem permissão para gravar no mesmo, além de verificar senão existe um arquivo com o mesmo nome. Nos próximos posts uma demonstração com o php.

 

0

Estilizando Links com CSS

cssEstilos em Links com CSS

Os elementos dos links são padrão para todos os navegadores:

  • link – mostra como o link irá aparecer antes de ser clicado;
  • visited – mostra como o link irá aparecer depois de ser clicado;
  • hover – mostra como o link irá aparecer quando o mouse passar por cima dele;
  • active – mostra como o link irá aparecer quando você clicar nele.

Para aplicarmos essa propriedade usamos as pseudo classes. Essas são classes dinâmicas que tem a capacidade de interagir com o documento.

Exemplo:

Para que o efeito dos links apareça de forma correta é necessário seguir essa ordem: link, visited, hover, active.

Multiplos Estilos em Links usando Classes

Outra opção do CSS é a capacidade de se usar mais de um estilo para os links e até mesmo outras propriedades. Isso irá ajudar quando você tiver áreas diferentes em seu documento que precisam ser feitas com uma estilização única.

Veja como fazer no exemplo abaixo:

Você irá aplicar a classe class=”nav” ao link que você deseja atribuir outro parâmetro:

Você pode fazer quantas classes quiser para seu documento.

Removendo o sublinhado dos links

Para remover o sublinhado dos links basta usar a propriedade text-decoration. Confira o exemplo abaixo:

0

Teclas de Atalho do Eclipse

eclipse2Teclas de Atalho do Eclipse

  • CTRL+Barra de Espaço

CTRL+ESPACO

O principal atalho para qualquer programador, implementa o auto complete do código. Através dele você pode conhecer todos os métodos, classes ou comandos presentes da linguagem configurada.

  • CTRL+1 ( Quick Fix )CTRL+1

Exibe uma dica de correção para as linhas com erro, basta posicionar o cursor do mouse no início da linha com erro e pressionar CTRL+1, selecionar uma opção desejada de acordo com sua necessidade e pressionar ENTER.

  • CTRL+SHIFT+O

Organiza os imports do arquivo, incluindo imports de classes utilizadas e excluindo imports não utilizados pelo arquivo.

  • CTRL+SHIFT+F

Formata e organiza o código fonte.

  • CTRL+SHIFT+L  ( Lista de atalhos )

CTRL+ALT+L

Exibe a lista de atalhos configurados no eclipse.

  • ALT+SHIFT+Q ( Show View)

ALT+SHIFT+Q

Mostra a lista de views e os atalhos diretos para acessa-las.

  • ALT+SHIFT+R  (Rename Refactoring)

ALT+SHIFT+R

Refatorar atributos, métodos ou classes.Para realizar esse comando primeiro selecione o nome de qualquer variável, método ou classe.

  • ALT+SHIFT+S ( Source Quick Menu )

ALT+SHIFT+S

Implementar métodos de interfaces, gerar getters e setters, toString, equals e hashcode,  adicionar e organizar imports entre outras coisas. Mesmo se aplica quando se clica o botão direito no código fonte.

  • ALT+SHIFT+T (Refactoring Quick Menu)

ALT+SHIFT+T

Refatorar atributos, métodos ou classes. Este atalho muda de acordo com a posição que está o cursor na página de código fontes.

  • ALT+SHIFT+M

ALT+SHIFT+M

Extrai uma determinada porção de código selecionado para um novo método.

  • CTRL+3 (Quick Navigate)

CTRL+3

Permite navega entre todos os arquivos abertos, todas as views abertas de todas as perspectivas e todos os comandos. Basta digitar o nome do arquivo ou da view, além de permitir gerar getters e setters com o comando ggas (Generate Getters and Setters), contrutores com os comandos gcfs  (Generate Constructors from Superclass) e gcuf (Generate Constructors Using Fields) , além de gerar toString, equals e etc.

  • CTRL+E (Switch Editor)

CTRL+E

Usado para alternar entre os arquivos abertos no editor do eclipse.

  • CTRL+O  (Quick Overview)

CTRL+O

Exibe a estrutura de uma classe, exibindo seus atributos e métodos.

  • CTRL+T (Quick Type Hierarchy)

CTRL+T

Exibe a hierarquia de uma classe.

 

0

Galeria de Imagens com Javascript

jsGaleria de Imagens com Javascript

Nesta postagem segue um exemplo básico de como criar uma galeria de imagens com auxilio do javascript.

Segue o exemplo:

galeria

Crie um diretório para armazenar  a página da galeria e as sua imagens, no meu exemplo criei um diretório chamado galeria e um subdiretório chamado imgs com as imagens usadas no exemplo.

dirgaleria

Uma boa prática é utilizar as imagens com as mesmas proporções e de mesma extensão.

Segue a Implementação com devidos comentários:

0

CRUD completo com PHP – parte 09

phpMódulo de Exclusão de Clientes com PHP e Mysql – Parte 09

Para a criação do módulo de exclusão de clientes do nosso tutorial de CRUD com PHP e MySQL, criaremos um formulário para a confirmação de exclusão do cliente. Este formulário receberá via parâmetro GET o id do cliente a ser excluído passado pelo link inserido na página exibirclientes.php criado na postagem CRUD completo com PHP – parte 06.

No diretório cadastroclientes do nosso projeto crie o modulo formexcluir.php. Implemente o módulo com o código abaixo:

Visualização do Formulário:

formexclusao

Após a confirmação dos dados na exclusão de clientes ao clicar em “Excluir Cliente”, o código do cliente a ser excluir é transmitido para um novo modulo. Para concluir a exclusão crie uma página php no diretório modulos com o nome excluircliente.php com a implementação a seguir:

 Visualização do módulo de exclusão:

exclusao

E com essa postagem já aprendemos Salvar, Exibir, Alterar e Excluir os dados de um Cliente. Nos próximos posts veremos como criar consultar com full text, cadastro com foto, controle de sessão entre outras funcionalidades e uso do PHP para criação de aplicações web. Espero ter ajudado no aprendizado até aqui.