A maneira mais eficiente de implementar comunicação entre o servidor e o banco de dados é configurar um pool de conexões de banco de dados. A criação de uma nova conexão para cada solicitação do cliente pode ser muito demorada, especialmente em aplicações que recebem continuamente um grande número de solicitações. Para remediar isso, são criadas várias conexões que são mantidas em um pool de conexões. Todas as solicitações de entrada que requerem acesso à camada de dados da aplicação usam uma conexão já criada do pool. Igualmente, quando uma solicitação é concluída, a conexão é fechada, mas volta ao pool.
Depois de preparar a fonte de dados e o pool de conexões do servidor, é necessário instruir a aplicação a utilizar a fonte de dados. Isso normalmente é feito criando uma entrada no descritor de implantação web.xml da aplicação. Finalmente, você precisa garantir que o driver do banco de dados (Driver MySQL Connector/J JDBC) esteja acessível ao servidor.
*Importante: * Deste ponto em diante, você precisa assegurar-se de ter um banco de dados MySQL denominado MyNewDatabase configurado e com dados de amostra no ifpwafcad.sql. Este arquivo SQL cria duas tabelas, Subject e Counselor, a seguir, preenche-as com os dados de amostra. Se você ainda não tiver feito isso ou se precisar de ajuda, consulte Conectando a um Banco de Dados MySQL antes de prosseguir com este tutorial.
Além disso, seu banco de dados precisa ser protegido por senha para criar uma fonte de dados e trabalhar com o GlassFish Server neste tutorial. Se você estiver utilizando a conta MySQL root sem senha, você poderá definir a senha usando um prompt de linha de comandos.
Este tutorial utiliza nbuser como senha de exemplo. Para definir sua senha como nbuser, navegue para o diretório bin de instalação do MySQL no prompt de linha de comandos e insira o seguinte:
shell> mysql -u root mysql> UPDATE mysql.user SET Password = PASSWORD('_nbuser_') -> WHERE User = 'root'; mysql> FLUSH PRIVILEGES;
O GlassFish Server Open Source Edition contém bibliotecas de DBCP (Database Connection Pooling - Pool de Conexões do Banco de Dados) que oferecem a funcionalidade de pool de conexões de forma transparente a você como desenvolvedor. Para aproveitar esse recurso, é necessário configurar uma fonte de dados JDBC (Java Database Connectivity) para o servidor que a sua aplicação pode utilizar para o pool de conexões.
É possível configurar a fonte de dados diretamente na Console de Administração do GlassFish Server ou, conforme descrito a seguir, você pode declarar os recursos de que a aplicação precisa em um arquivo glassfish-resources.xml. Quando a aplicação é implantada, o servidor lê as declarações de recursos e cria os recursos necessários.
As etapas a seguir demonstram como declarar um pool de conexões e uma fonte de dados com base no pool de conexões. O assistente de Recursos JDBC do NetBeans permite executar as duas ações.
Figure 11. Especificar definições da fonte de dados no assistente de Recurso JDBC
A fonte de dados JDBC conta com a JNDI, a Interface de Nomenclatura e Diretório Java. A API JNDI fornece uma maneira uniforme de as aplicações encontrarem e acessarem as fontes de dados. Para obter mais informações, consulte Tutorial do JNDI.
Figure 12. Especificar definições do pool de conexões no assistente de Recurso JDBC
*Observação: *O assistente detecta as conexões de banco de dados que tenham sido configuradas no IDE. Portanto, neste ponto, é necessário que você já tenha criado uma conexão ao banco de dados MyNewDatabase. Você pode verificar as conexões que foram criadas ao abrir a janela Serviços (Ctrl-5; &8984-5 no Mac) e procurar nós de conexão () na categoria Bancos de Dados.
Observe que o IDE extrai informações da conexão de banco de dados especificada na etapa anterior e define as propriedades de nome e valor para o novo pool de conexões.
Figure 13. Os valores default são baseados nas informações extraídas da conexão de banco de dados selecionada
Na janela Projetos, você pode abrir o arquivo glassfish-resources.xml recém-criado em Recursos do Servidor e observar que, nas tags <resources>, foram declarados uma fonte de dados e um pool de conexões com os valores previamente especificados.
Para confirmar se uma nova fonte de dados e um pool de conexões estão realmente registrados no GlassFish Server, você pode implantar o projeto no servidor e, em seguida, localizar os recursos na janela Serviços do IDE:
Figure 14. Nova fonte de dados e novo pool de conexões exibidos na janela Serviços
É necessário fazer referência ao recurso JDBC que acabou de configurar na aplicação Web. Para isso, você pode criar uma entrada no descritor de implantação web.xml da aplicação.
Os descritores de implantação são arquivos de texto com base em XML que contêm informações que descrevem como uma aplicação deve ser implantada em um ambiente específico. São usados normalmente, por exemplo, para especificar os parâmetros de contexto da aplicação, os padrões de comportamento e as configurações de segurança, bem como mapeamentos para servlets, filtros e listeners.
Observação. Se você tiver especificado o Java EE 6 ou Java EE 7 como a versão Java ao criar o projeto, será necessário criar o arquivo descritor de implantação selecionando Web > Descritor de Implantação Padrão, no assistente de Novo Arquivo.
Execute as etapas a seguir para fazer referência à fonte de dados no descritor de implantação da aplicação.
O campo Descrição é opcional, mas você pode inserir uma descrição do recurso que seja legível pelo usuário, por exemplo, Banco de Dados da aplicação IFPWAFCAD.
Figure 15. Especificar as propriedades do recurso na caixa de diálogo Adicionar Referência de Recurso
O novo recurso agora será listado abaixo do cabeçalho Referências de Recursos.
<resource-ref> <description>Database for IFPWAFCAD application</description> <res-ref-name>jdbc/IFPWAFCAD</res-ref-name> <res-type>javax.sql.ConnectionPoolDataSource</res-type> <res-auth>Container</res-auth> <res-sharing-scope>Shareable</res-sharing-scope> </resource-ref>
A adição do arquivo JAR do driver do banco de dados é outra etapa vital para permitir que o servidor se comunique com o banco de dados. Normalmente, seria necessário localizar o diretório de instalação do driver do banco de dados e copiar o arquivo mysql-connector-java-5.1.6-bin.jar do diretório raiz do driver na pasta da biblioteca do servidor que estiver utilizando. Felizmente, o gerenciamento de servidor do IDE é capaz de detectar na implantação se o arquivo JAR foi adicionado e, caso não tenha sido, ele o adiciona automaticamente.
Para demonstrá-lo, abra o gerenciador Servidores (Selecione Ferramentas > Servidores). O IDE fornece uma opção de implantação do driver JDBC. Se a opção estiver ativada, ela iniciará uma verificação para determinar se serão necessários drivers para as aplicações implantadas do servidor. No caso do MySQL, se o driver for necessário e não for encontrado, o driver incorporado do IDE será implantado no local adequado do servidor.
Figure 16. Opção Implantação de Driver JDBC ativa a implantação de driver automática
Figure 17. A janela de Saída indica que o driver MySQL foi implantado
Agora, se você voltar à subpasta domain1/lib no computador, você verá que o arquivo mysql-connector-java-5.1.6.x-bin.jar foi adicionado automaticamente. |