Rodrigo Aguas

Configurando Projeto JSF no Eclipse

18/12/09

Este tutorial explicará como criar um projeto Java para web utilizando JavaServer Faces (JSF) no Eclipse. É um passo-a-passo de todas as configurações necessárias para ter um projeto pronto para iniciar o desenvolvimento de sistemas web.

Os softwares utilizados serão o ambiente de desenvolvimento integrado Eclipse e o servidor de aplicação JBoss. Basearei as explicações nas versões mais recentes desses softwares no momento em que escrevo este tutorial, que são Eclipse Galileo SR1 e JBoss 5.1.0.GA, mas facilmente as explicações aqui lidas podem ser adaptadas às outras versões. A instalação dos mesmos não será tratada neste tutorial, então instale-os antes de prosseguir na leitura.

Então vamos à criação do projeto no Eclipse:

  1. Clique com o botão direito do mouse no interior da view “Project Explorer”;
  2. Vá na opção “New”;
  3. Clique em “Dynamic Web Project”, uma janela se abrir;
    TutorialJSF_1
  4. Dê um nome para o projeto no campo “Project Name”;
  5. Na caixa “Target runtime”, clique no botão “New”, abrirá uma outra janela para configuração do servidor no Eclipse;
  6. Selecione na pasta “JBoss” a versão “JBoss v5.0″;
    TutorialJSF_2
  7. Clique no botão “Next”;
  8. Clique no botão “Browser” e selecione o local onde foi instalado o JBoss em seu computador;
    TutorialJSF_3
  9. Clique em “Finish” e voltaremos para a janela de criação do projeto;
  10. Confirme do campo “Dynamic web module version” estar selecionada a opção “2.5″;
  11. Em “Configuration”, selecione a opção “JavaServer Faces v1.2 Project”;
    TutorialJSF_4
  12. Clique no botão “Next”, abrirá uma tela que não faremos nenhuma alteração;
  13. Clique no botão “Next” novamente;
    TutorialJSF_5
  14. Confirme do marcador “Generate web.xml deployment descriptor” estar selecionado;
    TutorialJSF_6
  15. Clique no botão “Next” mais uma vez;
    TutorialJSF_7
  16. Clique no botão “Finish”para efetivamente criar o projeto;
    TutorialJSF_8

Pronto! Você está com seu projeto web criado.  No próximo tutorial ensinarei a instalar o Facelets, pois aplicações sérias em JSF usam Facelets! Não percam!

Abraço!

Criação de Tabelas e Relacionamentos com SQL

17/04/09

Já escrevi sobre a criação de relacionamentos no MySQL anteriormente, então não serei repetitivo em falar sobre as mesmas coisas, mas aconselho a leitura do artigo anterior para os que não tiverem intimidade com relacionamentos de banco de dados.

Neste me concentrarei em mostrar a criação de relacionamentos utilizando apenas comandos SQL, não que isso dispense a utilização de uma interface com o banco de dados para a execução dos mesmos. Para isso, podemos utilizar além do próprio MySQL Query Browser, o phpMyAdmin ou outro programa de sua preferência que permita a execução de códigos SQL na base de dados.

Basearei minhas explicações em exemplos para a criação de um banco de dados para uma “biblioteca” (inventado apenas para nos servir de exemplo, então longe de ser completo o suficiente para uma aplicação real). Iniciaremos, criando a tabela de autores, contendo o nome do mesmo e um identificador:

1
2
3
4
CREATE TABLE autor (
id int,
nome varchar
)

No código anterior contemplamos apenas a estrutura da tabela, ignorando a definição da chave primária e dos campos que não aceitam valores nulos. Então, colocaremos o id como chave primária (primary key, ou apenas pk) e auto incrementada, para que o seu valor seja gerado pelo próprio MySQL. Além disso, o campo nome passa a não aceitar valores nulos, pois o padrão é que qualquer coluna aceite valores nulos. Existem outras sintaxes para esse comando, mas mostrarei apenas a que considero mais simples (mas não possibilita a criação de chaves compostas).

1
2
3
4
CREATE TABLE autor (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
nome varchar NOT NULL
)

Então, nossa tabela de autores está pronta. Criaremos agora a tabela de livros. Para simplificar, considerarei que um livro será escrito por apenas um autor, assim teremos que cada livro fará referência a exato um registro da tabela de autores. Armazenaremos, além do autor, apenas ISBN, título e edição do livro.

1
2
3
4
5
6
CREATE TABLE livro (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
isbn int NOT NULL,
titulo varchar NOT NULL,
edicao int NOT NULL
)

Já que o ISBN é um identificador único para as edições dos livros, poderíamos utilizá-lo como chave primária, mas não faremos isso, apenas não aceitaremos valores repetidos no ISBN, para isso utilizaremos unique nessa coluna. Além disso, temos ainda que criar uma coluna para o relacionamento com a tabela de autores e constraint de chave estrangeira (foreign key, ou apenas fk).

1
2
3
4
5
6
7
8
9
CREATE TABLE livro (
id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
isbn int NOT NULL UNIQUE,
titulo varchar NOT NULL,
edicao int NOT NULL,
autor int NOT NULL
constraint fk_autor FOREIGN KEY (id) REFERENCES autor(id) ON DELETE restrict ON UPDATE restrict
)
engine = InnoDB

Não comentei sobre a última linha do comando, ela determina o tipo de tabela que o MySQL criará. É necessário acrescentá-la por causa da foreign key, que não é suportada por qualquer tipo de tabela.

A criação das tabelas de autor e livro já foram suficientes para mostrar o básico da sintaxe de criação de tabela e já temos um (mini) banco de dados funcionando. Existem muitos detalhes que não foram comentados nesse artigo, quem quiser pode encontrá-los na documentação do MySQL.

Espero ter respondido aos pedidos feitos nos comentários do outro artigo. Abraços!

Explorar nichos na web? Será?

14/05/08

O Google tempos atrás vem inserindo (lentamente) uma nova versão do Gmail, aos poucos os usuários foram recebendo o acesso à ela. Uma das justificativas desse método é que caso algum problema seja encontrado, não terá atingido todos os usuários do serviço, não queimando a imagem da empresa e nem nos prejudicando. Muito interessante.

Mas eu não sei se o Google ainda não percebeu ou está ignorando que essa nova versão do Gmail TRAVA o Firefox a todo momento. Seria isso uma falha da Mozilla no desenvolvimento do Firefox? A culpa já foi até posta no Firebug (o próprio Gmail lhe avisa), mas mesmo com o Firebug desabilitado o problema continua.

Mas calma! Basta clicar em “Versão Mais Antiga” e utilizaremos o velho e bom Gmail! Mas não se empolgue, essa configuração não fica salva no computador, então toda vez que formos ler emails teremos que clicar no “Versão Mais Antiga”. Provavelmente, o Google não deixará tal versão disponível por muito tempo aos usuários, só espero que até lá resolvam o problema do Firefox.

Além disso, os usuários do ainda popular Internet Explorer 6 estão também excluídos da utilização dessa recente atualização. Será que os computadores deles não aguentariam o processamento necessário? É.. acho que o meu também não deve estar aguentando…

Sendo o Google a empresa símbolo da “Web 2.0″, estaria ela dando um passo atrás e focando nas grandes massas? A minoria que fique com o Gmail 1.0 mesmo!