Expondo um banco de dados MySQL com serviços Web RESTful
Este tutorial mostra como usar o NetBeans IDE para expor um banco de dados MySQL como um ponto final de serviço Web RESTful. Você implantará o banco de dados de amostra "sakila" no GlassFish v2 usando o plug-in Serviços Web RESTful. Neste tutorial, você aprende a criar:
Uma conexão de banco de dados ao MySQL
Uma nova fonte de dados usando essa conexão
Classes de entidade do banco de dados MySQL
Serviços Web RESTful a partir dessas classes de entidade
Este tutorial também requer o plug-in Serviços Web RESTful. No IDE, vá para o gerenciador de plug-ins, no menu Ferramentas, e verifique se o plug-in Serviços Web RESTful está instalado, na guia Instalado. Caso não esteja, instale-o a partir da aba Plug-ins disponíveis, como mostrado abaixo:
Introdução
MySQL é o software de banco de dados de código-fonte aberto mais popular do mundo, com mais de 100 milhões de cópias baixadas ou distribuídas em sua história. Com velocidade superior, confiabilidade e facilidade de uso, o MySQL se tornou a opção preferida dos Gerentes de TI corporativos porque ele elimina os principais problemas associados a tempo de inatividade, manutenção, administração e suporte.
O IDE dá suporte ao desenvolvimento rápido de serviços Web RESTful a partir de bancos de dados, por meio da criação e exposição de classes de entidade. Os serviços Web RESTful são baseados nas operações do cabeçalho HTTP. A construção de serviços Web com a abordagem RESTful está surgindo como uma alternativa popular ao uso de tecnologias baseadas em SOAP para implantação de serviços na Internet, por ser mais leve e possuir a capacidade de transmitir dados diretamente através de HTTP.
Para celebrar o anúncio de que a Sun Microsystems está adquirindo o MySQL, Arun Gupta criou originalmente esta demonstração, mostrando como um banco de dados MySQL poderia ser exposto como um serviço Web RESTful por meio do IDE.
Antes de usar este tutorial, você deve consultar o seguinte:
O IDE contém o Conextor MySQL/Driver J JDBC, permitindo que você se conecte a um banco de dados MySQL. O objetivo deste exercício é criar essa conexão.
Inicie seu banco de dados MySQL.
No Windows, digite o comando mysqld-nt --user root --password=your_root_user_password. Você deve estar no diretório bin do MySQL ou o diretório bin deve estar em seu caminho. Se houver um erro de que mysql não pôde se conectar ao localhost, inicie o serviço MySQL (Painel de controle > Ferramentas administrativas > Serviços).
Em sistemas UNIX, digite o comando ./bin/mysqld_safe a partir do diretório MySQL.
Inicie o IDE. Abra a aba Serviços. Expanda Bancos de dados > Drivers. Procure o driver MySQL. Caso ele não exista, clique com o botão direito do mouse no nó Drivers, escolha Novo driver e preencha a caixa de diálogo com o caminho para o sei Conector MySQL / driver J.
Clique com o botão direito do mouse no nó do driver MySQL (Conector/J) e escolha Conectar usando... A caixa de diálogo Nova conexão de banco de dados se abre.
Deixe os campos Nome e Driver com valores padrão. Para URL do banco de dados, digite jdbc:mysql://localhost:sakila. Para Nome de usuário, digite root, e para Tipo de senha a senha do seu usuário "root". A caixa de diálogo deve ser semelhante ao seguinte. Clique em OK quando terminar.
Configurando um projeto de aplicação Web
O objetivo deste exercício é criar um novo projeto para Aplicação Web. Este projeto conterá classes de entidade e serviços Web RESTful.
Escolha Arquivo > Novo projeto (Ctrl-Shift-N) no menu principal. Em Categorias, selecione Web. Em Projetos, selecione Aplicação Web e clique em Próximo.
Digite sakila no campo Nome do projeto. Observe que o Caminho do contexto se torna /sakila.
Especifique a Localização do projeto para qualquer diretório no computador. Você pode aceitar a localização padrão.
Em servidor, selecione GlassFish. O GlassFish é um servidor da aplicação certificado para Java EE5 e é incluído na instalação Web e Java EE do NetBeans IDE. Se você usa um servidor que não seja o GlassFish, tal como o servidor Web Tomcat incluído, talvez seja necessário configurar o servidor, o que está fora do escopo deste tutorial.
Deixe a opção Definir como projeto principal selecionada e clique em Terminar. O IDE cria a pasta do projeto Sakila. A pasta do projeto contém todas as fontes e metadados do projeto, como o script de construção Ant do projeto. O projeto HelloWeb se abre no IDE. A página de boas vindas, index.jsp, se abre na janela principal do editor de código-fonte. Você pode ver a estrutura de arquivos do projeto na janela Arquivos (Ctrl-2), e sua estrutura lógica na janela Projetos (Ctrl-1):
Gerando classes de entidade de um banco de dados
O objetivo deste exercício é gerar classes de entidade do banco de dados sakila.
Clique com o botão direito do mouse no nó sakila e escolha Novo > Classes de entidade a partir de banco de dados, como mostrado abaixo::
No painel Tabelas do banco de dados, selecione Nova fonte de dados no campo suspenso Fonte de dados. A caixa de diálogo Criar fonte de dados se abre.
Digite jndi/sakila nome campo Nome JNDI. No campo suspenso Conexão de banco de dados, selecione jdbc:mysql://localhost/sakila [root on Default schema], como mostrado abaixo. Clique em OK. A caixa de diálogo fecha e você retorna ao painel Tabelas de banco de dados.
Em Tabelas disponíveis, clique em "film" e clique em Adicionar >. A página Tabelas de banco de dados agora deve ser parecida com a imagem abaixo. Clique em Próximo.
A página Classes de entidade se abre. Clique em Criar unidade de persistência... Aceite todos os padrões mostrados abaixo e clique em Criar. Você retorna à página Classes de entidade.
Em Pacote, digite sakila. A página Classes de entidade agora deve aparecer da seguinte forma:
Clique em Terminar. O IDE cria as classes da entidade.
Observe a janela Projetos. Agora você deve ver o seguinte:
Configurando o arquivo de persistência
Em Gerando classes de entidade a partir de um banco de dados, você criou uma unidade de persistência. A configuração dessa unidade de persistência é armazenada no arquivo persistence.xml. Em sua visualização Projetos, você pode encontrar persistence.xml em seu projeto, no nó Arquivos de configuração.
Você precisa alterar esse arquivo de persistência para passar o nome de usuário e a senha. Abra a aba XML. Edite o arquivo para incluir as propriedades toplink.jdbc.user e toplink.jdbc.password. Ele corresponde ao trecho de código seguinte (as partes que você adiciona ou altera estão em negrito):
Gerando serviços Web RESTful a partir de classes de entidade
O objetivo deste exercício é gerar
serviços Web RESTful a partir das classes de entidade que
geramos na seção anterior.
Clique com o botão direito do mouse no pacote que contém as classes de entidade
e escolha Novo > Serviços Web RESTful a partir de classes de entidade, como mostrado abaixo:
No assistente para Novos serviços Web RESTful a partir de classes de entidade, clique em
Adicionar tudo. Agora você deve ver o seguinte:
Clique em Próximo. O painel Classes geradas se abre. Aceite todos os padrões e clique em Terminar. O IDE agora cria os serviços Web RESTful.
O nó Serviços Web RESTful na janela Projetos
exibe todos os serviços Web RESTful de seu projeto. O valor entre colchetes, tal como [/films/], é o valor do modelo da URI. Você também pode navegar para o arquivo de código-fonte,
clicando duas vezes nesse nó. Essa visualização também existe todos os métodos
HTTP e métodos de localizador de sub-recurso. Novamente, você
pode navegar para os métodos, clicando duas vezes nos nós.
Agora que nossas classes de entidade e serviços Web RESTful foram
gerados, vamos testar a nossa aplicação. O IDE fornece um utilitário prático
para testar serviços Web RESTful. Usaremos o mesmo
na próxima seção.
Testando os serviços Web RESTful
O objetivo deste exercício é testar a nossa aplicação.
Clique com o botão direito do mouse no nó do projeto e escolha Testar serviços Web RESTful, como mostrado abaixo:
O servidor se inicia e a aplicação é implantada. Finalmente, o navegador deve exibir sua aplicação, com um link para
cada um dos serviços Web:
À esquerda está o conjunto de recursos raiz. Aqui eles se chamam languages e films.
Clique em Filmes e, em seguida, clique em Testar ou na URL "http://localhost:8080/sakila/resources/films/". O resultado é a representação RESTful da tabela Film. A representação padrão mostra 10 registros da tabela em que cada entrada retorna o id do filme e uma referência à entrada detalhada.
Você pode ver mais entradas anexando /?max=n à URL. Por exemplo, "http://localhost:8080/sakila/resources/films/?max=40" mostra as primeiras 40 entradas. Os campos adicionais da tabela podem ser exibidos adicionando-se os métodos getter à classe "converter.FilmRefConverter", tais como:
@XmlElement
public String getTitle() {
return entity.getTitle();
}
O método getTitle retorna o título do filme além dos campos já retornados. As colunas diferentes na tabela podem ser visualizadas indo-se para a aba "Serviços" e expandindo a conexão do banco de dados sakila criada anteriormente:
A saída modificada (com o título do filme incluído) se parece com o seguinte:
Mais exercícios
Aqui estão mais algumas idéias para você explorar:
Crie as representações RESTful das outras tabelas usando as etapas descritas acima.
Exiba os dados de tabelas diferentes em uma tabela de banco de dados jMaki Yahoo ou Dojo, como explicado em TOTD #10.
Exiba os dados recuperados do banco de dados em uma página JSP como descrito em Hello JPA World.
Crie uma aplicação CRUD usando a tabela de banco de dados jMaki, como descrito em TOTD #15 ou Screencast #Web10.
Um aplicativo JRuby-on-Rails usando MySQL é explicado aqui. TOTD #9 explica como o pool de conexão JDBC no GlassFish pode ser usado para uma aplicação JRuby-on-Rails por meio de MySQL.
A mensagem principal aqui é que o MySQL pode ser muito facilmente usado com o GlassFish e o NetBeans IDE torna isso possível.
Para enviar comentários e sugestões, obter suporte e se manter informado sobre os mais recentes desenvolvimentos dos recursos de desenvolvimento de Java EE do NetBeans IDE, inscreva-se na lista de endereçamento de .