Este tutorial mostra como criar um aplicativo Java da rea de trabalho com o qual voc possa acessar e atualizar um banco de dados. O tutorial usa o suporte do NetBeans IDE para as seguintes tecnologias:
A API de Java Persistence (JPA), que ajuda voc a usar o cdigo Java para interagir com bancos de dados. Vinculao de beans (JSR-295), que oferece uma forma de componentes JavaBeans diferentes de ter valores de propriedade que so sincronizados entre si. Por exemplo, voc pode usar vinculaes de beans para manter os valores de clulas em um componente JTable visual em sincronia com os valores dos campos em uma classe de entidade. (Por sua vez, a classe da entidade representa a tabela do banco de dados). O Swing Aplication Framework (JSR-296), que fornece alguns blocos de construo teis para a criao rpida de aplicativos de rea de trabalho.
Criaremos um aplicativo CRUD (criar, ler, atualizar, excluir) de banco de dados com um componente personalizado usado para visualizar os dados (visualizao car design). Este tutorial amplamente baseado em um screencast que era baseado em uma construo de desenvolvimento de uma verso anterior do IDE. Parte da interface do usurio foi alterada depois que essa demonstrao foi feita, sendo assim, voc pode perceber algumas diferenas entre este tutorial e a demonstrao. Voc pode visualizar a demonstrao (cerca de 9 minutos) agora ou baixar um zip da demonstrao. Durao esperada: 45 minutos Contedo
Configurando o banco de dados Iniciando o servidor e criando um banco de dados Conectando ao banco de dados Criando o aplicativo Executando o aplicativo gerado Revisando as partes geradas do aplicativo Adicionando outros controles Vinculando controles a valores na tabela Configurando um componente personalizado Construindo e fazendo deployment do aplicativo Prximas etapas
Para concluir este tutorial, voc precisa do software e dos recursos apresentados na tabela a seguir. Software ou recurso NetBeans IDE Java Development Kit (JDK) O servidor de banco de dados Java DB (o Java DB includo no JDK 6) Script SQL do banco de dados Car Projeto CarPreview Verso necessria verso 6.9 verso 6
Na janela Servios, clique com o boto direito do mouse em Bancos de dados > Java DB e escolha Iniciar servidor. Caso voc ainda no tenha uma localizao definida para o banco de dados, a caixa de dilogo Definir localizao do banco de dados aparece. Indique uma localizao para o servidor de banco de dados armazenar os bancos de dados. Voc pode criar uma nova pasta l, se quiser.
Quando o servidor iniciado, a aba Processo do banco de dados Java DB se abre na janela Sada e exibe uma mensagem semelhante seguinte:
Apache Derby Network Server - 10.2.2.0 - (485682) started and ready to accept connections on port 1527 at 2007-09-05 10:26:25.424 GMT
Para criar o banco de dados: 1. Na janela Servios, clique com o boto direito do mouse em Bancos de dados > Java DB e escolha Criar banco de dados.
2. No campo de texto Nome do banco de dados, digite car_database. Defina tambm o Nome de usurio e a Senha como nbuser. 3. Clique em OK.
3. Expanda o n da conexo, clique com o boto direito do mouse em seu subn Tabelas, e escolha Executar comando. 4. Copie o contedo do arquivo car.sql e cole-o na aba Comando SQL 1 do Editor de cdigo-fonte. Esse o script SQL que preenche o banco de dados com dados sobre os carros.
Criando o aplicativo
1. Escolha Arquivo > Novo projeto. 2. No primeiro painel do assistente, expanda a categoria Java e selecione o modelo Aplicativo de rea de trabalho Java. Clique em Prximo. O modelo Aplicativo de rea de trabalho Java oferece muitos dos fundamentos de um aplicativo visual, incluindo itens e comandos de menu bsicos. 3. Na pgina Nome e localizao do assistente, faa o seguinte: 1. No campo Nome do projeto, digite CarsApp. O valor deste campo define o nome de exibio do projeto na janela Projetos. 2. Selecione a caixa de verificao Definir como projeto principal.
3. (Opcional) Edite o campo Localizao do projeto para alterar a localizao dos metadados de seu projeto. 4. (Opcional) Selecione a caixa de verificao Usar pasta dedicada para armazenamento de bibliotecas e especifique o local da pasta de bibliotecas. Consulte Compartilhando bibliotecas do projeto para obter mais informaes sobre esta opo. 5. No campo Escolher shell do aplicativo, selecione Aplicativo de banco de dados. 6. Clique em Prximo. 4. Na pgina Tabela mestre do assistente, selecione a conexo do banco de dados CAR. A listagem do banco de dados devem se parecer com algo semelhante ao seguinte:
jdbc:derby://localhost:1527/car_database[nbuser on NBUSER]
5. Preencha a senha (nbuser) do banco de dados e selecione a caixa de verificao Lembrar senha durante esta sesso. Depois que a conexo ao banco de dados for estabelecida, o campo Tabela de banco de dados deve exibir CAR e a lista Colunas a serem includas deve incluir os nomes de 10 colunas do banco de dados CAR. Por enquanto, usaremos somente cinco delas no aplicativo. 6. Selecione o nome das cinco colunas inferiores (comeando com SUN_ROOF e terminando com MODERNNESS) e clique no boto < para mov-las para a coluna esquerda. Clique em Prximo. 7. No painel Opes de detalhe, clique em Terminar. Em seguida, o assistente gera uma interface de usurio bsica com uma tabela e uma conexo de banco de dados. Isso pode levar alguns segundos, pois o IDE gera o projeto e o cdigo.
Habilidade de visualizar e modificar valores em cinco colunas do banco de dados CAR. Itens de menu bsicos. Persistncia de seu estado de janela entre sesses. Quando voc fecha o aplicativo, a posio e o tamanho da janela so lembrados. Sendo assim, quando voc reabre o aplicativo, a janela abre na mesma posio que estava quando foi fechada. Uma caixa de dilogo Sobre, que voc pode personalizar facilmente. Arquivos .properties contendo os rtulos na interface do usurio. Usar arquivos .properties uma boa forma de manter a lgica do seu cdigo separada do texto que aparece na interface do usurio do seu aplicativo. Tal separao til por tornar mais fcil localizar seu programa, entre outros motivos.
Para ver alguns dos recursos que j foram construdos no aplicativo, siga estas etapas: 1. Clique com o boto direito do mouse no n do projeto e escolha Executar. Aps alguns segundos, o aplicativo se inicia e uma janela chamada Exemplo de aplicativo de banco de dados aparece. Esta janela contm uma tabela e alguns controles que permitem que voc edite o banco de dados CARS. 2. Selecione o primeiro registro na tabela (para Acura). 3. Selecione o campo de texto Preo e substitua o valor existente por 46999. Em seguida, pressione Enter. O valor deve aparecer atualizado na tabela. (Entretanto, o valor no ser refletido no banco de dados at que voc clique em Salvar).
Semelhantemente, voc pode atualizar quaisquer outros valores na tabela. 4. Clique em Novo para criar um novo registro. Em seguida, preencha os valores de cada um dos campos (Marca, Modelo, Preo, Estilo, Cor). Por exemplo, voc pode preencher Trabant, Classic, 1000, wagon e azul. Clique em Salvar para salvar a entrada no banco de dados. 5. Clique na barra de ttulo Exemplo de aplicativo de banco de dados e arraste o aplicativo para um lugar diferente em sua tela. 6. Clique na borda esquerda da janela Exemplo de aplicativo de banco de dados e arraste para a esquerda para aumentar o tamanho da janela. 7. Na barra de menu Exemplo de aplicativo de banco de dados, escolha Arquivo > Sair. 8. No IDE, clique com o boto direito do mouse no n do projeto e escolha Executar projeto. A janela Exemplo de aplicativo de banco de dados se abrir com o mesmo tamanho e posio que tinha quando voc fechou o aplicativo.
A classe de entidade Car.java, que usada para ler e gravar dados na tabela do banco de dados CAR. As classes de entidade so um tipo especial de classe que permite a voc interagir com bancos de dados atravs do cdigo Java. As classes de entidade usam anotaes Java para associar campos de classes a colunas do banco de dados. O arquivo META-INF/persistence.xml, que define uma conexo entre o banco de dados e a classe da entidade. Esse arquivo tambm conhecido como a unidade de persistncia. Usando vinculao de beans para conectar as propriedades da classe de entidade com as propriedades do componente JTable. A vinculao de beans uma nova tecnologia baseada em JSR 295 e que provavelmente ser includa em uma futura verso do Java SE. Os objetos entityManager, query e list, que esto definidos na classe CarsView e esto listados na janela Inspetor. o O objeto do gerenciador de entidades usado para recuperar e confirmar dados no escopo definido da unidade de persistncia. o O objeto de consulta define como a coleo de dados particular recuperada do gerenciador de entidades. (Voc pode alterar a forma em que o objeto de consulta funciona, selecionando o objeto de consulta na janela Inspetor e alterando a propriedade query na folha de propriedades. A propriedade query usa a linguagem de consulta JPA. o O objeto da lista uma coleo observvel que mantm os dados da consulta. Uma coleo observvel um tipo especial de coleo em que voc pode colocar um ouvinte para descobrir quando as alteraes na coleo foram feitas.
Usando a janela Inspetor e a folha de propriedades, voc pode seguir estas etapas para ver como a JTable vinculada aos dados: 1. Na janela Inspetor, selecione o n mainPanel[JPanel] > masterScrollPane [ScrollPane] > masterTable [JTable]. Em seguida, clique na aba Vinculao na janela Propriedades. 2. Examine a propriedade dos elementos para configurar se ela est vinculada a uma lista. 3. Clique no boto de reticncias [...] para abrir o personalizador Vincular masterTable.elements, onde voc pode personalizar ainda mais a vinculao entre a tabela e o banco de dados. Por exemplo, voc pode ver que o personalizador permite que voc especifique quais colunas da tabela so vinculadas. Alm da categoria Vinculao na folha de propriedades, voc tambm pode usar o menu Vincular no menu de contexto.
Observao: se voc soltar um componente em um lugar que no deseja e, portanto, causar algumas alteraes de layout indesejadas, use o comando Desfazer para reverter as alteraes. Escolha Editar > Desfazer ou pressione Ctrl-Z. 2. Se necessrio, estenda o controle deslizante para a esquerda para alinh-lo com o lado esquerdo dos componentes do campo de texto. 3. Estenda o controle deslizante para a direita para aumentar toda a largura do formulrio. 4. Adicione um rtulo esquerda do controle deslizante e defina seu texto como Tamanho do pneu. (Clique no rtulo para torn-lo editvel). 5. Adicione outro controle deslizante abaixo do primeiro controle deslizante, e ajuste sua largura e alinhamento onde necessrio. 6. Adicione outro rtulo abaixo do rtulo Tamanho do pneu e defina seu texto como Modernidade. 7. Adicione duas caixas de verificao abaixo dos controles deslizantes. Defina seu texto como Spoiler e Teto solar. (Torne o texto de exibio editvel, clicando uma vez na caixa de verificao, pausando e clicando novamente na caixa de verificao. Voc tambm pode clicar com o boto direito do mouse na caixa de verificao e escolha Editar texto).
4. No formulrio, clique com o boto direito do mouse no controle deslizante Modernidade e escolha Vincular > valor. 5. Na lista suspensa Origem da vinculao da caixa de dilogo Vinculao, selecione masterTable. 6. Na lista suspensa Expresso de vinculao, selecione selectedElement > modernness. Para vincular as caixas de verificao aos seus elementos de tabela correspondentes: 1. No formulrio, clique com o boto direito do mouse na caixa de verificao Spoiler e escolha Vincular > selecionado. 2. Na lista suspensa Origem da vinculao da caixa de dilogo Vinculao, selecione masterTable. 3. Na lista suspensa Expresso de vinculao, selecione selectedElement > spoiler. 4. Clique em OK para sair da caixa de dilogo Vincular. 5. No formulrio, clique com o boto direito do mouse na caixa de verificao Teto solar e escolha Vincular > selecionado. 6. Na lista suspensa Origem da vinculao da caixa de dilogo Vinculao, selecione masterTable. 7. Na lista suspensa Expresso de vinculao, selecione selectedRow > sunRoof. 8. Clique em OK. Agora voc deve ser capaz de alterar as entradas do banco de dados usando o controle deslizante e as caixas de verificao.
Para verificar se os controles deslizantes e as caixas de verificao funcionam: 1. Abra a janela Servios. 2. Verifique se o IDE tem uma conexo ao banco de dados, clicando com o boto direito do mouse em Bancos de dados > jdbc:derby;//localhost:1527/car_database e escolhendo Conectar. 3. Clique com o boto direito do mouse no n Bancos de dados > jdbc:derby;//localhost:1527/car_database > Tabelas > e escolha Visualizar dados. 4. Examine os valores SUN_ROOF, SPOILER, TIRE_SIZE e MODERNNESS do primeiro registro. 5. Escolha Executar > Executar projeto principal para executar o aplicativo. O aplicativo em execuo deve ser semelhante captura de tela mostrada abaixo.
6. 7. 8. 9.
No aplicativo em execuo, selecione o primeiro registro. Mova os controles deslizantes e altere as selees da caixa de verificao. Clique em Salvar para salvar as alteraes no banco de dados. Na janela Servios, use novamente o comando Visualizar dados. Os valores no banco de dados devem refletir as alteraes que voc fez.
3. Escolha Arquivo > Abrir projeto e navegue para o contedo extrado do arquivo zip e selecione o projeto CarPreview. 4. Clique em Abrir projeto. O projeto se abre no IDE. 5. Clique com o boto direito do mouse no n CarPreview e escolha Limpar e construir. Isso compila os arquivos no projeto para que voc possa usar a classe CarPreview como um bean que pode ser arrastado e solto diretamente no formulrio. Esse componente foi escrito como um componente JavaBeans, sendo assim, voc poderia adicion-lo Paleta, o que seria conveniente para adicionar o componente a vrios aplicativos. Mas por enquanto, iremos simplesmente arrastar o componente diretamente para o seu aplicativo a partir da janela Projetos. Para adicionar o componente CarPreview ao aplicativo: 1. Na janela Projetos, expanda os ns Car Preview > Source Packages > carpreview >. 2. Arraste a classe CarPreview.java para o formulrio. Para inseri-la corretamente logo baixo dos menus, coloque-a sobre a tabela alinhada esquerda com outros controles e ajuste parte inferior da barra de menu, como mostrado na imagem abaixo.
3. Redimensione horizontalmente o componente de visualizao sobre o formulrio inteiro. 4. Da mesma forma que voc vinculou os controles deslizantes e as caixas de verificao aos elementos no componente masterTable, vincule toda as propriedades de vinculao do componente CarPreview aos atributos selectedElement correspondentes da masterTable. Use o menu popup Vincular ou a aba Vinculao na folha de propriedades. 5. Execute novamente o aplicativo CarApp. No aplicativo em execuo, voc pode ver o componente CarPreview se alterar enquanto voc seleciona linhas diferentes na tabela, altera valores na tabela, move os controles deslizantes, marca e desmarca as caixas de verificao.
Construindo o aplicativo
O comando criar principal no IDE o comando Limpar e criar. O comando Limpar e criar exclui as classes compiladas anteriormente e outros artefatos de construo e, em seguida, reconstri todo o projeto a partir do rascunho. Observaes: H tambm um comando Construir, que no exclui os antigos artefatos de construo, mas esse comando est desativado por padro. Veja ao seo Compilar ao salvar, no guia Criao, importao e configuraa de projetos Java para obter mais informaes. Para construir o aplicativo:
A sada obtida do script de construo Ant exibida na Janela de sada. Se a Janela de sada no for exibida, voc pode abri-la manualmente selecionando Janela > Sada > Sada. Quando voc limpa e constri seu projeto, ocorre o seguinte:
As pastas de sada geradas por aes de construo anteriores so excludas ("limpas"). (Na maioria dos casos, essas so as pastas build e dist.) As pastas build e dist so adicionadas em sua pasta do projeto (de agora em diante chamada pasta PROJECT_HOME). Todos os cdigos-fonte so compilados em arquivos .class, que so colocados na pasta PROJECT_HOME/build. Um arquivo JAR contendo seu projeto criado dentro da pasta PROJECT_HOME/dist. Se voc especificou alguma biblioteca para o projeto (alm do JDK), uma pasta lib criada na pasta dist. As bibliotecas so copiadas em dist/lib. O arquivo de manifesto no JAR atualizado para incluir entradas que designam a classe principal e quaisquer bibliotecas que estejam no classpath do projeto.
1. Em seu sistema, crie um arquivo zip que contenha o arquivo JAR (CarsApp.jar) do aplicativo e a lib que o acompanha, que contm os outros arquivos JAR necessrios ao aplicativo. 2. Envie o arquivo para as pessoas que usaro o aplicativo. Oriente-as a descompactar o arquivo zip, certificando-se de que o arquivo CarsApp.jar e a pasta lib estejam na mesma pasta. 3. Oriente os usurios a seguir as etapas na seo Executando o aplicativo fora do IDE acima.