// 
//     Licensed to the Apache Software Foundation (ASF) under one
//     or more contributor license agreements.  See the NOTICE file
//     distributed with this work for additional information
//     regarding copyright ownership.  The ASF licenses this file
//     to you under the Apache License, Version 2.0 (the
//     "License"); you may not use this file except in compliance
//     with the License.  You may obtain a copy of the License at
// 
//       http://www.apache.org/licenses/LICENSE-2.0
// 
//     Unless required by applicable law or agreed to in writing,
//     software distributed under the License is distributed on an
//     "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
//     KIND, either express or implied.  See the License for the
//     specific language governing permissions and limitations
//     under the License.
//

= Tutorial do NetBeans E-commerce - Configurando o Ambiente de Desenvolvimento
:jbake-type: tutorial
:jbake-tags: tutorials 
:jbake-status: published
:icons: font
:syntax: true
:source-highlighter: pygments
:toc: left
:toc-title:
:description: Tutorial do NetBeans E-commerce - Configurando o Ambiente de Desenvolvimento - Apache NetBeans
:keywords: Apache NetBeans, Tutorials, Tutorial do NetBeans E-commerce - Configurando o Ambiente de Desenvolvimento



1. link:intro.html[+Introdução+]
2. link:design.html[+Criando a Aplicação+]
3. *Configurando o Ambiente de Desenvolvimento*
4. link:data-model.html[+Criando o Modelo de Dados+]
5. link:page-views-controller.html[+Preparando as Views de Página e o Servlet do Controlador+]
6. link:connect-db.html[+Conectando a Aplicação ao Banco de Dados+]
7. link:entity-session.html[+Adicionando Classes de Entidades e Beans de Sessão+]
8. link:manage-sessions.html[+Gerenciando Sessões+]
9. link:transaction.html[+Integrando a Lógica de Negócios Transacional+]
10. link:language.html[+Adicionando o Suporte a Idioma+]
11. link:security.html[+Protegendo a Aplicação+]
12. link:test-profile.html[+Testando e Criando Perfis+]
13. link:conclusion.html[+Conclusão+]

image::../../../../images_www/articles/68/netbeans-stamp-68-69.png[title="O conteúdo desta página se aplica ao NetBeans IDE, versões e 6.8 e 6.9"]

As seguintes etapas descrevem como configurar seu ambiente de desenvolvimento. No processo, você aprenderá sobre algumas das janelas principais do IDE e compreenderá como o IDE usa o script de construção link:http://ant.apache.org/[+Ant+] para executar ações comuns em seu projeto. Ao final desta unidade do tutorial, você terá criado um projeto de aplicação web e confirmado que você pode compilar o projeto com sucesso, implantá-lo em seu servidor de desenvolvimento e executá-lo no IDE.

Você também aprenderá como conectar o IDE a um servidor de banco de dados MySQL, criar instâncias de bancos de dados e conectar-se a instâncias de bancos de dados a partir da janela Serviços do IDE. Nesta unidade, você criará um novo banco de dados chamado `affablebean`, que você usará durante todo o tutorial.

Você pode exibir uma demonstração ao vivo da aplicação construída neste tutorial: link:http://dot.netbeans.org:8080/AffableBean/[+Aplicação de Demonstração do Tutorial do NetBeans E-commerce+]



|===
|Software ou Recurso |Versão Necessária 

|link:https://netbeans.org/downloads/index.html[+NetBeans IDE+] |Pacote Java, 6.8 ou 6.9 

|link:http://www.oracle.com/technetwork/java/javase/downloads/index.html[+Java Development Kit (JDK)+] |versão 6 

|<<glassFish,GlassFish Server>> |v3 ou Open Source Edition 3.0.1 

|link:http://dev.mysql.com/downloads/mysql/[+Servidor de banco de dados MySQL+] |versão 5.1 
|===

*Observações:*

* O NetBeans IDE requer o Java Development Kit (JDK) para ser executado adequadamente. Se você não tiver nenhum dos recursos listados acima, o JDK deverá ser o primeiro item a ser submetido a download e instalado.
* O Pacote Java do NetBeans IDE inclui o Java Web e tecnologias EE, que são necessárias para a aplicação construída neste tutorial.
* O pacote Java do NetBeans IDE também inclui o GlassFish Server, necessário para este tutorial. Você poderia link:https://glassfish.dev.java.net/public/downloadsindex.html[+fazer download do GlassFish Server independentemente+], mas a versão fornecida pelo NetBeans do qual fez download tem a vantagem adicional de ser registrada automaticamente no IDE.



[[create]]
== Criando um Projeto Web

1. Inicie o NetBeans IDE. Se estiver executando o IDE pela primeira vez, você verá a Página Inicial do IDE. 
image::images/ide-start-page.png[title="A Página Inicial do NetBeans IDE"]

[start=2]
. Clique no botão Novo Projeto (image::images/new-project-btn.png[]) (Ctrl-Shift-N; ⌘-Shift-N no Mac) para criar um novo projeto Java Web. O assistente Novo Projeto será aberto para guiá-lo pelo processo. Em Categorias, selecione Java Web, depois, em Projetos, selecione Aplicação Web. 
image::images/new-project-wzd.png[title="Criar um projeto usando o Assistente Novo Projeto"]

[start=3]
. Clique em Próximo.

[start=4]
. Na Etapa 2: Nome e Localização, dê o nome `AffableBean` ao projeto. Nesta etapa, você também pode designar a localização em seu computador onde o projeto residirá. Por default, o IDE cria a pasta `NetBeansProjects` no seu diretório home. Se você quiser alterar a localização, insira o caminho no campo de texto Localização do Projeto.

[start=5]
. Clique em Próximo.

[start=6]
. Na Etapa 3: Servidor e Definições, especifique o GlassFish v3 como o servidor no qual o projeto será implantado durante o desenvolvimento. Já que o GlassFish v3 foi incluído na sua instalação do NetBeans, você verá que o GlassFish v3 está listado no campo drop-down Servidor. 

Se você quisesse implantar em um servidor que ainda não estivesse registrado no IDE, você deveria clicar no botão Adicionar e percorrer o assistente Adicionar Instância do Servidor. Você pode exibir todos os servidores registrados no IDE na janela Servidores (Selecione Ferramentas > Servidores no menu principal).


[start=7]
. Para a versão do Java EE, selecione Java EE 6 Web. 

A aplicação que você criar usará várias funcionalidades do Java EE 6, principalmente anotações de servlet (novo na link:http://jcp.org/en/jsr/summary?id=315[+Especificação do Servlet 3.0+]) e EJBs usados diretamente nos contêineres de servlets (novo na link:http://jcp.org/en/jsr/summary?id=318[+Especificação do EJB 3.1+]). O Servlet 3.0 e o EJB 3.1 são parte da plataforma Java EE 6, portanto, é necessário um servidor compatível com EE-6 como o GlassFish v3 para usar neste tutorial. Para obter mais informações, consulte link:entity-session.html#specification[+Sobre Especificações e Implementações+].

[start=8]
. Certifique-se de que a opção "Ativar a Injeção de Dependência e Contextos" não está selecionada. Essa opção é específica para a tecnologia CDI (Injeção de Dependência e Contextos), especificada por link:http://jcp.org/en/jsr/detail?id=299[+JSR-299+] e não será usada neste tutorial. Para obter mais informações, consulte link:../cdi-intro.html[+Introdução à Injeção de Dependência e Contextos e ao JSF 2.0+]. 
image::images/new-project-wzd2.png[title="Especificar servidor de desenvolvimento, versão do EE e se deseja incluir suporte CDI"] 

Observe que, por default, o caminho do contexto da aplicação é o nome do projeto. Esse é o caminho no qual sua aplicação pode ser acessada após ser implantada no servidor. Por exemplo, o GlassFish usa 8080 como seu número de porta default, portanto, durante o desenvolvimento, você poderá acessar o projeto em uma janela do browser a partir de:

[source,java]
----

http://localhost:8080/AffableBean/
----

[start=9]
. Clique em Finalizar. O IDE gera um projeto de esqueleto chamado `AffableBean` que adota as link:http://java.sun.com/blueprints/code/projectconventions.html#99632[+convenções J2EE Blueprints para aplicações web+]. O IDE exibe as várias janelas em seu layout default. 
[.feature]
--
image::images/ide-default-layout.png[role="left", link="images/ide-default-layout.png"]
--

[start=10]
. Examine o layout default do IDE. Segue aqui uma breve visão geral da janelas e guias exibidas:
* *O Editor:* O editor (Ctrl-0; ⌘-0 no Mac) é o componente central do IDE e é onde você provavelmente gastará uma grande parte do seu tempo. O editor adapta-se, automaticamente, ao idioma no qual você está trabalhando, fornecendo suporte à documentação, autocompletar código, dicas e mensagens de erro específicas da tecnologia na qual você está codificando.
* *Janela Projetos:* A janela Projetos (Ctrl-1; ⌘-1 no Mac) é o ponto de entrada para os códigos-fonte do seu projeto. Fornece uma _view lógica_ do conteúdo importante do projeto e agrupa os arquivos com base em suas funções (por exemplo, `Configuration Files`). Ao clicar com o botão direito do mouse na janela Projetos, você pode chamar ações comuns às suas tarefas de desenvolvimento (ou seja, `Build`, `Clean`, `Deploy` e `Run`).
* *Janela Arquivos:* A janela Arquivos (Ctrl-2; ⌘-2 no Mac) oferece uma view com base em diretório do seu projeto. Ou seja, permite que você exiba a estrutura do projeto como ele existe no sistema de arquivos do computador. Nessa janela, é possível exibir todos os arquivos que pertencem ao seu projeto, incluindo o script de construção Ant, (`build.xml`), e os arquivos necessários pelo IDE para tratar o projeto (contidos na pasta `nbproject`). Se você tiver executado o projeto, poderá ver a localização dos arquivos Java compilados (pasta `build`). Se tiver explicitamente construído o seu projeto (escolhendo Construir ou Limpar e Construir no menu de contexto do nó do projeto da janela Projetos), você poderá ver o arquivo WAR distribuível do projeto (contido na pasta `dist`).
* *Navegador:* O Navegador (Ctrl-7; ⌘-7 no Mac) fornece uma visão geral estrutural do arquivo aberto no editor. Por exemplo, se uma página web HTML for exibida, o Navegador listará os nós de tags das listas, de maneira que correspondam ao Modelo de Objeto de Documento (DOM) da página. Se uma classe Java estiver aberta no editor, o Navegador exibirá as propriedades e os métodos pertencentes àquela classe. Você pode usar o Navegador para navegar até os itens no editor. Por exemplo, ao clicar duas vezes em um nó no Navegador, seu cursor será levado diretamente àquele elemento no editor.
* *Janela Tarefas:* A janela Tarefas (Ctrl-6; ⌘-6 no Mac) faz a varredura do código automaticamente e lista as linhas com erros de compilação, correções rápidas e advertências de estilo. Para classes Java, também lista as linhas comentadas que contêm palavras como “`TODO`” ou “`FIXME`”.
* *Janela Serviços:* A janela Serviços (Ctrl-5; ⌘-5 no Mac) fornece uma interface para gerenciar os servidores, os Web services, os bancos de dados e as conexões de bancos de dados, assim como outros serviços relacionados ao desenvolvimento de equipe.
* *Janela Saída:* _(Não exibida)_ A janela Saída (Ctrl-4; ⌘-4 no Mac) é exibida automaticamente quando você chama uma ação que invoca um serviço, geralmente de um recurso externo, como um servidor, e pode espelhar os arquivos de log do servidor. Em projetos Web, também permite exibir informações relacionadas às tarefas Ant (por exemplo, `Build`, `Clean and Build` e `Clean`).
* *Paleta:* _(Não exibido)_ A Paleta (Ctrl-Shift-8; ⌘-Shift-8 no Mac) fornece vários snippets de códigos úteis que você pode arrastar e soltar no editor. Muitos dos snippets incluídos na Paleta também são acessíveis chamando autocompletar código no editor, como será demonstrado posteriormente.

*Observação:* Todas as janelas do IDE podem ser acessadas no item de menu Janela.


[[run]]
== Executando o Projeto Web

1. Execute o novo projeto `AffableBean`. Na janela Projetos, você pode fazer isso clicando com o botão direito do mouse no nó do projeto e selecionando Executar. Caso contrário, clique no botão Executar Projeto (image::images/run-project-btn.png[]) (F6; fn-F6 no Mac) na barra de ferramentas principal do IDE. 

Uma janela do browser será aberta para exibir a página de boas-vindas do projeto. 
image::images/hello-world.png[title="O projeto será automaticamente implantado no servidor e será exibido no browser"] 
Então, o que acabou de acontecer? Quando você executa um projeto web, o IDE chama o destino Ant `run` no script de construção do seu projeto. Investigue abrindo o arquivo `build.xml` de seu projeto no editor.

[start=2]
. Alterne para a janela Arquivos (Ctrl-2; ⌘-2 no Mac), expanda o nó do projeto e clique duas vezes no arquivo `build.xml` contido em seu projeto. Quando o arquivo `build.xml` é aberto no editor, o Navegador lista todos os destinos Ant disponíveis para o script. 
image::images/navigator-ant-targets.png[title="O Navegador lista todos os destinos Ant disponíveis para o script build.xml"]

Destinos Ant normais são exibidos usando o ícone destino Geral (image::images/ant-normal-icon.png[]). O ícone do destino Ant (image::images/ant-emphasized-icon.png[]) _enfatizado_ simplesmente indica que o destino inclui uma descrição, que é exibida como uma dica de ferramenta (como mostrado na imagem acima). Para obter mais informações, consulte link:../../java/project-setup.html[+Criando, Importando e Configurando Projetos Java+].


[start=3]
. Clique duas vezes no destino `run`. O arquivo `build-impl.xml` será aberto no editor e exibe a definição do destino.

[source,java]
----

<target depends="run-deploy,run-display-browser" description="Deploy to server and show in browser." name="run"/>
----
Por que o arquivo `build-impl.xml` abre quando clicamos em um destino de `build.xml`? Se você alternar de volta para `build.xml` (Ctrl-Tab) e examinar o conteúdo do arquivo, você verá a seguinte linha:

[source,java]
----

<import file="nbproject/build-impl.xml"/>
----

O script de construção do projeto é basicamente um arquivo vazio que importa destinos definidos do NetBeans de `nbproject/build-impl.xml`.

Você pode editar livremente o script `build.xml` padrão do seu projeto adicionando novos destinos ou substituindo destinos definidos do NetBeans existentes. Entretanto, você não deve editar o arquivo `build-impl.xml`.

Você pode ver na definição do destino `run` que ele é dependente dos seguintes destinos:
* `run-deploy`
* `run-display-browser`
Esses dois destinos, por sua vez, dependem de outros destinos, que podem ser examinados em qualquer lugar no arquivo `build-impl.xml`. Mas, essencialmente, as seguintes ações ocorrem quando o destino `run` é chamado:
1. O projeto é compilado.
2. O arquivo WAR é criado.
3. O servidor é iniciado (caso já não esteja sendo executado).
4. O arquivo WAR é implantado no servidor designado.
5. O browser é aberto para exibir o URL do servidor e os caminhos de contexto da aplicação.

Consulte o link:http://ant.apache.org/manual/index.html[+Manual do Ant+] oficial para obter mais informações sobre como usar o Ant.


[start=4]
. Para gerar um arquivo WAR distribuível para seu projeto, selecione Limpar e Construir Projeto (ou Limpar e Construir Projeto Principal) no menu Executar do IDE.

[start=5]
. Na janela Arquivos (Ctrl-2; ⌘-2 no Mac), expanda o nó do projeto. A pasta `dist` contém arquivo WAR do projeto. A pasta `build` contém seu projeto compilado. 
image::images/files-window.png[title="A janela Arquivos fornece uma view baseada em diretório de seu projeto"]

*Observação:* se você _limpar_ o projeto (na janela Projetos, selecione Limpar no menu de contexto do nó do projeto), essas duas pastas serão removidas.


[start=6]
. Alterne para a janela Serviços (Ctrl-5; ⌘-5 no Mac) e expanda o nó Servidores > GlassFish Server 3 > Aplicações. 
image::images/services-win-deployed-app.png[title="A janela Serviços exibe o status do servidor, aplicações implantadas e recursos"]

*Observação:* O "GlassFish v3" é o nome default do servidor para os usuários do NetBeans 6.8.

O ícone da seta verde no nó do GlassFish Server (image::images/gf-server-running-node.png[]) indica que o servidor está sendo executado. A pasta Aplicações lista todas as aplicações implantadas e você pode ver que a aplicação `AffableBean` foi implantada com sucesso.

Nesta etapa, você já criou um projeto Java Web no IDE e confirmou que ele pode ser compilado e implantado com sucesso no seu servidor de desenvolvimento e aberto em um browser ao ser executado.



[[communicate]]
== Comunicando-se com o Servidor de Banco de Dados

Depois de ter feito download e instalado o servidor de banco de dados MySQL, você pode conectar-se a ele a partir do IDE. Uma instalação default usa “`root`” e '’ (uma string vazia) como a conta de usuário e senha para conectar-se ao servidor de banco de dados. No entanto, devido aos problemas de conectividade com o GlassFish, recomendamos que você use uma conta com uma senha que não seja vazia.^<<footnote1,[1]>>^ As seguintes instruções demonstram como executar o servidor de banco de dados e alterar a senha da conta `root` para “`nbuser`” na linha de comandos do MySQL. A combinação “`root`”/“`nbuser`” é usada por todo o Tutorial do NetBeans E-commerce. Com o servidor do banco de dados sendo executado e configurado adequadamente, você o registra no IDE e cria uma instância do banco de dados.

*Observação:* As instruções da linha de comandos abaixo presumem que você já adicionou o comando `mysql` à variável de ambiente `PATH`. (Se ainda não o tiver feito, você receberá um erro “`mysql: command not found`” ao inserir comandos `mysql` na linha de comandos.) 

Se você ainda não tiver adicionado `mysql` a `PATH`, você pode chamar o comando inserindo o caminho completo no diretório `bin` de instalação do MySQL. Por exemplo, se o comando `mysql` estiver localizado em seu computador em `/usr/local/mysql/bin`, você deverá digitar o seguinte:


[source,java]
----

shell> */usr/local/mysql/bin/*mysql -u root
----

Para obter mais informações, consulte o Manual de Referência oficial do MySQL:

* link:http://dev.mysql.com/doc/refman/5.1/en/general-installation-issues.html[+2.1. Orientações Gerais de Instalação+]
* link:http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html[+2.13.2. Protegendo as Contas MySQL Iniciais+]
* link:http://dev.mysql.com/doc/refman/5.1/en/invoking-programs.html[+4.2.1. Chamando Programas MySQL+]
* link:http://dev.mysql.com/doc/refman/5.1/en/setting-environment-variables.html[+4.2.4. Configurando Variáveis de Ambiente+]


Execute as seguintes etapas.

* <<check,Verifique se o Servidor MySQL está sendo Executado>>
* <<start,Inicie o Servidor do Banco de Dados>>
* <<password,Altere a Senha>>
* <<register,Registre o Servidor no IDE>>
* <<database,Crie uma Instância de Banco de Dados>>


[[check]]
=== Verifique se o Servidor MySQL Server está sendo Executado

Antes de se conectar ao servidor MySQL pelo IDE, certifique-se de que o servidor está sendo executado. Uma maneira de fazer isso é usar o comando `ping` do cliente do link:http://dev.mysql.com/doc/refman/5.1/en/mysqladmin.html[+`mysqladmin`+].

1. Abra um prompt de linha de comandos e digite o seguinte:

[source,java]
----

shell> mysqladmin ping
----
Se o servidor estiver sendo executado, você verá uma saída semelhante a:

[source,java]
----

mysqld is alive
----
Se o servidor não estiver sendo executado, você verá uma saída semelhante a:

[source,java]
----

mysqladmin: connect to server at 'localhost' failed
error: 'Can't connect to local MySQL server through socket '/tmp/mysql.sock'
Check that mysqld is running and that the socket: '/tmp/mysql.sock' exists!
----


[[start]]
=== Inicie o Servidor do Banco de Dados

No caso de o servidor MySQL não estar sendo executado, você poderá iniciá-lo com a linha de comandos. Consulte link:http://dev.mysql.com/doc/refman/5.1/en/automatic-start.html[+2.13.1.2. Iniciando e Parando o MySQL Automaticamente+] para obter uma breve visão geral entre das várias plataformas. As etapas a seguir fornecem instruções gerais, dependendo do seu sistema operacional.


==== Sistemas tipo Unix:

Para sistemas tipo Unix, é recomendado iniciar o servidor MySQL chamando link:http://dev.mysql.com/doc/mysql-startstop-excerpt/5.1/en/mysqld-safe.html[+`mysqld_safe`+].

1. Abra um prompt de linha de comandos e execute o comando `mysqld_safe`:

[source,java]
----

shell> sudo ./mysqld_safe
----
Você verá uma saída semelhante à seguinte:

[source,java]
----

090906 02:14:37 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/data
----


==== Windows:

O instalador MySQL do Windows permite a instalação do servidor do banco de dados como um serviço Windows, onde o MySQL é iniciado e interrompido automaticamente com o sistema operacional. Se você precisar iniciar o banco de dados manualmente, execute o comando link:http://dev.mysql.com/doc/mysql-startstop-excerpt/5.1/en/mysqld.html[+`mysqld`+] a partir da pasta `bin` do diretório de instalação.

1. Abra uma janela da console do Windows (no menu Iniciar, selecione Executar e digite `cmd` no campo de texto). A janela de linha de comandos será exibida.
2. Digite o seguinte comando (O caminho indicado presume que você tenha a versão 5.1 instalada na localização de instalação default):

[source,java]
----

C:\> "C:\Program Files\MySQL\MySQL Server 5.1\bin\mysqld"
----

Para obter mais informações, consulte o Manual de referência MySQL oficial: link:http://dev.mysql.com/doc/refman/5.1/en/windows-start-command-line.html[+2.4.5.5. Iniciando o MySQL a partir da linha de comandos do Windows+].


[[password]]
=== Alterar a Senha

Para definir a senha da conta `root` como “`nbuser`”, execute as seguintes etapas.

1. Abra um prompt de linha de comandos e digite o seguinte:

[source,java]
----

shell> mysql -u root
mysql> UPDATE mysql.user SET Password = PASSWORD('nbuser') WHERE User = 'root';
mysql> FLUSH PRIVILEGES;
----

Para obter mais informações, consulte o Manual de referência oficial do MySQL: link:http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html[+2.13.2. Protegendo as Contas MySQL Iniciais+].


[[register]]
=== Registrar o Servidor no IDE

A janela Serviços do IDE permite que você se conecte ao servidor, inicie e pare o servidor, exiba as instâncias de bancos do dados e os dados nelas contidas e também execute uma ferramenta de administração externa no servidor.

1. Na janela Serviços, clique com o botão direito do mouse no nó Bancos de Dados e selecione Registrar Servidor MySQL. 
image::images/register-mysql-server.png[title="Registrar um servidor MySQL na janela Serviços do IDE"] 
Na caixa de diálogo Propriedades do Servidor MySQL, na guia Propriedades Básicas, é possível ver as definições default da instalação do servidor MySQL. São elas:
* *Nome do Host do Servidor:* `localhost`
* *Número da Porta do Servidor:* `3306`
* *Nome do Usuário Administrador:* `root`
* *Senha do Administrador:* `nbuser`

[start=2]
. Selecione a opção Salvar Senha. 
image::images/mysql-server-properties.png[title="Especificar definições do servidor MySQL"]

[start=3]
. Clique em OK. O IDE se conecta ao seu servidor de banco de dados MySQL e lista as instâncias do bancos de dados que são mantidas pelo servidor. Se expandir o nó Drivers, você também poderá ver que o IDE contém o link:http://dev.mysql.com/doc/refman/5.1/en/connector-j.html[+driver JDBC/Conector+] para MySQL. 
image::images/services-win-mysql.png[title="Conectar - se a um servidor MySQL na janela Serviços"] 
O servidor de aplicações (ou seja, GlassFish) requer o driver para ativar a comunicação entre o seu código Java e o banco de dados MySQL. Devido ao IDE já conter o driver J/Conector, você não precisará fazer download dele. Além disso, como será demonstrado posteriormente, você pode especificar nas definições do servidor a ativação da implantação automática do driver JDBC no GlassFish, caso ele esteja ausente no servidor. 

As etapas 4 a 7 abaixo são opcionais. Você pode configurar o IDE para iniciar e parar o servidor MySQL e também executar uma ferramenta de administração externa no servidor.

[start=4]
. Clique com o botão direito do mouse no nó do servidor MySQL e selecione Propriedades. Na caixa de diálogo Propriedades do Servidor MySQL, selecione a guia Propriedades de Admin.

[start=5]
. No campo “Caminho/URL para ferramenta admin”, digite o caminho no seu computador para o arquivo executável da ferramenta de administração do banco de dados, como, por exemplo, o link:http://dev.mysql.com/doc/administrator/en/mysql-administrator-introduction.html[+MySQL Administrator+]. O MySQL Administrator está incluído no pacote link:http://dev.mysql.com/downloads/gui-tools/[+MySQL GUI Tools+].

[start=6]
. No campo “Caminho para o comando iniciar”, digite o caminho para o comando iniciar do MySQL (ou seja, `mysqld` ou `mysqld_safe`), dependendo do seu sistema operacional. (Consulte <<start,Iniciar o Servidor do Banco de dados>> acima.) 

*Observação:* Para sistemas tipo Unix, você pode descobrir que só pode chamar o comando iniciar com privilégios administrativos ou como root. Para superar isso, você pode criar um script (usando link:http://www.nongnu.org/gksu/[+GKSu+] para Linux e Solaris e link:http://developer.apple.com/mac/library/documentation/Darwin/Reference/ManPages/man1/osascript.1.html[+osascript+] para Mac) que irá realizar a tarefa. Para obter mais informações, consulte link:http://davidvancouvering.blogspot.com/2008/09/starting-mysql-in-netbeans-as.html[+o post deste blog+].


[start=7]
. No campo “Caminho para o comando parar”, digite o caminho para o comando parar do MySQL (ou seja, `mysqladmin shutdown`). Devido a esse comando exigir uma conta de usuário com privilégios de shutdown, você precisa inserir as credenciais de nome de usuário/senha no campo Argumentos. Por exemplo:
* *Argumentos:* `-u root -pnbuser shutdown`

Depois de ter definido os campos listados na guia Propriedades Avançadas, você poderá:

* *Iniciar o servidor MySQL:* Clique com o botão direito do mouse no nó do servidor MySQL e selecione Iniciar.
* *Parar o servidor MySQL:* Clique com o botão direito do mouse no nó do servidor MySQL e selecione Parar.
* *Executar a ferramenta de administração externa:* Clique com o botão direito do mouse no nó do servidor MySQL e selecione Executar Ferramenta de Administração.


[[database]]
=== Criar uma Instância do Banco de Dados

1. Crie a instância do banco de dados que será usada neste tutorial. Para fazer isso, clique com o botão direito do mouse no nó do servidor MySQL e selecione Criar Banco de Dados.
2. Na caixa de diálogo que é exibida, digite `affablebean`. Selecione a opção “Conceder Acesso Total para” e, em seguida, selecione `root@localhost` no campo drop-down. Isso permite que a conta `root` no host `localhost` acesse o banco de dados. Posteriormente, ao criar um pool de conexões no servidor, você precisará fornecer a conta `root` e a senha `nbuser` como as credenciais de nome de usuário/senha para conceder ao servidor o acesso ao banco de dados. 
image::images/create-mysql-db-dialog.png[title="Clique com o botão direito do mouse no nó do servidor e selecione Criar Banco de Dados para criar uma nova instância do banco de dados"]

[start=3]
. Clique em OK. Quando você faz isso, o banco de dados chamado `affablebean` é criado, e a conexão ao banco de dados é estabelecida automaticamente. As conexões são exibidas na janela Serviços usando um nó de conexão (image::images/db-connection-node.png[]).

*Observação:* Os nós de conexão são mantidos na janela Serviços. Se você reiniciar o IDE, o nó de conexão será exibido com uma linha serrilhada (image::images/connection-broken.png[]), indicando que a conexão está interrompida. Para conectar-se novamente ao banco de dados, certifique-se de que o servidor do banco de dados está sendo executado e, em seguida, clique com o botão direito do mouse no nó e selecione Conectar.


[start=4]
. Expanda o nó de conexão do banco de dados `affablebean`. A conexão contém o esquema default do banco de dados (`affablebean`), e dentro dele existem nós para tabelas, views e procedimentos. Atualmente, eles estão vazios, pois ainda não criamos nada. 
image::images/db-conn-affable-bean.png[title="As conexões de banco de dados contêm o esquema default do banco de dados e os nós de tabelas, views e procedimentos"]

Neste estágio, você já criou a conexão ao servidor MySQL a partir do IDE e já criou um novo bando de dados chamado `affablebean`, que você usará durante todo o tutorial. Além disso, você criou o projeto Java Web no IDE e confirmou que ele pode ser compilado e implantado com sucesso no seu servidor de desenvolvimento e aberto em um browser ao ser executado. Agora que o ambiente de desenvolvimento está pronto, você pode começar a esboçar o modelo de dados da aplicação.

link:/about/contact_form.html?to=3&subject=Feedback: NetBeans E-commerce Tutorial - Setting up the Development Environment[+Envie-nos Seu Feedback+]



[[seeAlso]]
== Consulte Também


=== Recursos do NetBeans

* link:../../java/project-setup.html[+Criando, Importando e Configurando Projetos Java+]
* link:../../../articles/mysql.html[+MySQL e NetBeans IDE+]
* link:../../ide/mysql.html[+Conectando a um Banco de Dados MySQL+]
* link:../../web/mysql-webapp.html[+Criando uma Aplicação Web Simples Usando um Banco de Dados MySQL+]


=== Recursos Externos

* link:http://ant.apache.org/manual/index.html[+Manual do Usuário do Apache Ant+]
* link:http://ant.apache.org/manual/tutorial-HelloWorldWithAnt.html[+Hello World com Ant+]
* link:http://dev.mysql.com/doc/refman/5.1/en/[+Manual de Referência do MySQL 5.1+]
* link:http://dev.mysql.com/doc/administrator/en/index.html[+Manual de Referência do MySQL Administrator+]


=== Livros

* link:https://netbeans.org/kb/articles/books.html[+Livros do NetBeans+]
* link:http://www.apress.com/book/view/1590598954[+Pro NetBeans IDE 6 Rich Client Platform Edition+]
* link:http://apress.com/book/view/1430219548[+Iniciando a Plataforma Java EE 6 com o GlassFish 3: Do Novato ao Profissional+]



== Referências

1. <<1,^>> Usando o GlassFish v3, você pode criar um pool de conexões para um servidor de banco de dados MySQL usando uma senha vazia. O GlassFish Open Source Edition 3.0.1, incluído no NetBeans IDE 6.9, não ativa uma conexão usando uma senha vazia. Consulte link:https://glassfish.dev.java.net/issues/show_bug.cgi?id=12221[+GlassFish Edição 12221+].
