Como comparar varias datas vindas do banco

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.

  1. Abra o assistente de Novo Projeto pressionando o botão (

    Como comparar varias datas vindas do banco
    ) Novo Arquivo na barra de ferramentas principal do IDE. Selecione a categoria do GlassFish Server e, em seguida, Recurso JDBC e clique em Próximo.

  2. Na Etapa 2, Atributos Gerais, selecione a opção Criar Novo Pool de Conexões JDBC e, em seguida, no campo de texto Nome JNDI, digite jdbc/IFPWAFCAD.

Como comparar varias datas vindas do banco

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.

  1. Como opção, adicione uma descrição para a fonte de dados. Por exemplo, digite: Accesses the database that provides data for the IFPWAFCAD application.

  2. Clique em Próximo e em Próximo novamente para ignorar a etapa 3, Propriedades Adicionais.

  3. Na Etapa 4, digite IfpwafcadPool para Nome do Pool de Conexões JDBC. Certifique-se de que a opção Extrair da Conexão Existente esteja selecionada e escolha jdbc:mysql://localhost:3306/MyNewDatabase na lista drop-down. Clique em Próximo.

Como comparar varias datas vindas do banco

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 (

Como comparar varias datas vindas do banco
) na categoria Bancos de Dados.

  1. Na Etapa 5, selecione javax.sql.ConnectionPoolDataSource na lista drop-down Tipo de Recurso.

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.

Como comparar varias datas vindas do banco

Figure 13. Os valores default são baseados nas informações extraídas da conexão de banco de dados selecionada

  1. Clique em Finalizar. O assistente gera um arquivo glassfish-resources.xml que contém entradas para a fonte de dados e o pool de conexões especificados.

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:

  1. Na janela Projetos, clique com o botão direito do mouse no nó do projeto IFPWAFCAD e selecione Implantar. O servidor será iniciado caso não esteja em execução e o projeto será compilado e implantado nele.

  2. Abra a janela Serviços (Ctrl-5; &#8984-5 no Mac) e expanda os nós Servidores > GlassFish > Recursos > JDBC > Recursos JDBC e Pools de Conexões. Observe que a nova fonte de dados e o pool de conexões agora são exibidos:

Como comparar varias datas vindas do banco

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.

  1. Na janela Projetos, expanda a pasta Arquivos de Configuração e clique duas vezes em web.xml para abrir o arquivo no editor.

  2. Clique na guia Referências localizada na parte superior do editor.

  3. Expanda o cabeçalho Referências de Recurso e clique em Adicionar para abrir a caixa de diálogo Adicionar Referência do Recurso.

  4. Em Nome do Recurso, insira o nome do recurso que você forneceu ao configurar a fonte de dados no servidor acima (jdbc/IFPWAFCAD).

  5. Digite javax.sql.ConnectionPoolDataSource no campo Tipo de Recurso. Clique em OK.

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.

Como comparar varias datas vindas do banco

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.

  1. Para verificar se o recurso foi adicionado ao arquivo web.xml, clique na guia Código-fonte localizada na parte superior do editor. Observe que as tags <`resource-ref`> a seguir agora estão incluídas.

<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.

  1. Selecione Ferramentas > Servidores para abrir o gerenciador Servidores. Selecione o servidores do GlassFish Server no painel esquerdo.

  2. No painel principal, selecione a opção Ativar Implantação do Driver JDBC.

Como comparar varias datas vindas do banco

Figure 16. Opção Implantação de Driver JDBC ativa a implantação de driver automática

  1. Antes de fechar o gerenciador de Servidores, anote o caminho indicado no campo de texto da pasta Domínios. Ao se conectar ao GlassFish Server no IDE, você está se conectando, na realidade, a uma instância do servidor de aplicações. Cada instância executa aplicações em um domínio exclusivo e o campo Nome do Domínio indica o nome do domínio que o servidor está utilizando. Conforme mostrado na imagem acima, o arquivo JAR do driver deverá estar localizado em domain1, que é o domínio default criado na instalação do GlassFish Server.

  2. Clique em Fechar para sair do gerenciador Servidores.

  3. No computador, vá até o diretório de instalação do GlassFish Server e entre na subpasta domínios > domain1 > lib. `. Como você já deve ter implantando o projeto IFPWAFCAD no servidor, você verá o arquivo `mysql-connector-java-5.1.6-bin.jar. Se você não vir o arquivo JAR do driver, execute a etapa a seguir.

  4. Implante seu projeto no servidor. Na janela Projetos do IDE, selecione Implantar no menu de contexto do nó do projeto. Você pode ver o progresso na janela de Saída do IDE (Ctrl-4; &#8984-4 no Mac). A saída indica que o driver MySQL está implantado no GlassFish Server.

Como comparar varias datas vindas do banco

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.