Exemplo25 – Leitura de dados de arquivos txt Passos para a elaboração da aplicação: 1. Faça um arquivo texto usando o Bloco de Notas obedecendo a uma estrutura de linhas e colunas de dados, conforme mostra o esquema proposto abaixo, ou seja, três colunas e quatro linhas: 1, 2, 3, 4, “Jorge”, “Paula”, “Marcos”, “Fernanda”, 12/08/90 23/05/88 09/11/91 17/02/89 2. Salve o arquivo texto com o no nome dados.txt. 3. Adicione a aplicação um componente TextDataFile da guia “DataExpress” da Paleta de Componentes. O componente TextdataFile tem a função de fazer um link com o arquivo texto desejado para trazer os dados para aplicação. 4. Na propriedade delimiter do textDataFile1 coloque “ (aspa dupla). Esse caractere é usado para definir o começo e fim de um campo string. 5. Na propriedade separator do textDataFile1 coloque, (vírgula). Esse caractere é usado para diferenciar os valores das colunas. 6. Na propriedade filename do textDataFile1 defina o caminho e o arquivo texto que será usado na aplicação, no caso o arquivo dados.txt. 7. Adicione também um componente TableDataSet da guia “DataExpress” da Paleta de Componentes. 8. Na propriedade dataFile no tableDataSet1, defina textDataFile1. Através da propriedade dataFile, o componente textDataFile, que tem o arquivo texto, é ligado ao componente TableDataSet, que por sua vez busca e instaura os dados do arquivo texto especificado. 9. Dê duplo-clique e amplie a estrutura de árvore do ícone do tableDataSet1 no Structure Pane. 10. Selecione <new column> abaixo do tableDataSet1. Fixe as seguintes propriedades no Inspector ou no editor de colunas que surgirá no lugar do formulário: Na propriedade dataType defina: SHORT Na propriedade caption defina: Código Na propriedade columnName defina: coluna_codigo 11. Selecione novamente <new column>, para gerar a segunda coluna e fixar as propriedades a seguir: Na propriedade dataType defina: String Na propriedade caption defina: Nome Na propriedade columnName defina: coluna_nome 1 12. Outra vez selecionando <new column> vamos gerar a terceira coluna. Fixe as propriedades de acordo com o que segue: Na propriedade dataType defina: Date Na propriedade caption defina: Data Na propriedade columnName defina: coluna_data Na propriedade editMask defina: dd/MM/yy 13. Adicione ao contentPane, um componente TableScrollPane da guia “dbSwing” da Paleta de Componentes. 14. Fixe a propriedade constraints do tableScrollPane1 como “Center”. 15. Selecione tableScrollPane1 no Structure Pane e adicione a ele outro componente da guia “dbSwing”, chamado JdbTable. JdbTable é o componente que apresenta visualmente os dados de um banco de dados ou de um arquivo texto na aplicação, que age em conjunto com o componente TableScrollPane, que é por onde os dados mostrados e rolados, através de uma espécie de painel com barras de rolagem. 16. Defina a propriedade jdbTable1, como tableDataSet1. Nesse momento pode ocorrer um erro caso o arquivo de dados (o arquivo texto) não seja devidamente especificado ou se as colunas e linhas do arquivo não estejam definidas de acordo com as propriedades fixadas no componente TableDataSet. 17. Adicione também ao contentPane, os componentes JdbNavToolBar e JdbStatusLabel, amos da guia “dbSwing”. 18. Fixe a propriedade constraints do jdbNavToolBar1 como “North”. 19. Fixe a propriedade constraints do jdbStatusLabel1 como “South”. 20. Coloque “Dados de Arquivos TXT” na propriedade title do this (formulário). Tela de Execução 2 Exemplo26 - Conexão e Leitura de dados de Tabelas Criando uma fonte de dados ODBC Para que seja possível acessar banco de dados em Java, é necessário criar uma fonte de dados ODBC através do sistema operacional utilizado. Essa fonte de dados será usada para estabelecer uma ponte de comunicação entre o banco de dados, no caso o Access, e o Java. A seguir, são demonstrados os procedimentos necessários para a criação da fonte de dados ODBC. 1. Acesse o Menu Iniciar, escolha Configurações, e então clique sobre Painel de Controle. 2. No Painel de Controle, dê duplo-clique sobre o ícone referente a Ferramentas Administrativas, e novamente um duplo-clique sobre o ícone que corresponde a Fontes de Dados (ODBC). 3. Acesse a guia DSN de usuário e pressione o botão adicionar, conforme apresenta a figura a seguir. 4. Na tela que surge, apresentada pela figura abaixo, são apresentados todos os drivers disponíveis. Obviamente, essa lista pode variar, dependendo dos drivers que estão instalados em seu sistema operacional. Como estamos trabalhando com um banco de dados Access deverá ser escolhido o driver Microsoft Access Driver. A seguir pressione o botão Concluir. 3 5. A seguir aparecerá uma janela conforme apresentada pela figura que segue. No campo Nome da Fonte de Dados digite Clientes. 6. Pressione o botão Selecionar e na janela de diálogo que surge escolha o banco de dados criado pelo Access (Cadastro.mdb) na sua devida localização, e clique em OK. O caminho e o nome do banco de dados escolhido deverá aparecer na janela conforme apresenta a figura a seguir. 4 7. Depois de pressionado o botão OK, a fonte de dados criada (Clientes) deve aparecer entre as Fontes de dados do usuário, conforme demonstra na abaixo. Nesse ponto, o banco de dados que será manipulado pela aplicação já está corretamente criado e devidamente configurado. Apesar dos passos apresentados terem sido realizados a partir de um banco de dados no formato Access, eles devem servir para a maioria dos formatos existentes. O próximo passo será a criação da aplicação em Java que realizará o acesso ao banco de dados criado (Cadastro) através da fonte de dados criada (Clientes). Passos para elaboração da aplicação 1. Adicione a aplicação, um componente Database da guia “DataExpress” da Paleta de Componentes. O componente Database tem a função de conectar o banco de dados desejado à aplicação. 2. Selecione database1 na pasta Data Access no Structure Pane e selecione a sua propriedade connection e clique sobre o botão de elipse (que aparecerá no conteúdo ao lado da propriedade) para que se abra a caixa de diálogo Connection. 3. Fixe as propriedades de connection, conforme as descrições seguintes e a figura a seguir. Propriedade Driver escolha “sun.jdbc.odbc.JdbcOdbcDriver”. Propriedade URL escolha “jdbc:odbc:Clientes”. Propriedade Username - Entre com o seu nome (opcional). 5 Propriedade Password - Não é requerido neste caso (opcional). 4. Realize o Teste de Conexão do banco de dados através do botão “Test Connection”. Se a mensagem ao lado do botão for “Success”, então clique no botão “OK”. Caso a mensagem retorne que a conexão não foi bem sucedida ou conexão falha, será necessário refazer o processo de conexão até que os erros estejam sanados. 5. Adicione à aplicação um componente QueryDataSet da guia “DataExpress” da Paleta de Componentes. Este componente armazena resultados a partir da execução de uma declaração SQL onde são especificados parâmetros, e depois manda esses resultados pra o componente Database. 6. Selecione a propriedade query do queryDataSet1, e clique sobre o botão elipse que surge à direita do campo para abrir editor “Query” e fixar as seguintes termos: 1. No combo com o rótulo “Database” escolha a opção database1 que estará na lista. 2. Na área de texto “SQL Statement” reservada a declaraçlão do comando SQL digite: Select * from Clientes. 7. Clique no botão “Test Query” para certificar que a query será executada corretamente. Se o retorno for uma mensagem Sucess, clique em OK para fechar o editor. Abaixo, a figura demonstra a janela do editor “Query”. 6 8. Escolha a guia “More dbSwing” da Paleta de Componentes, e adicione o componente DBDisposeMonitor à aplicação. 9. Fixe a propriedade dataAwareComponentContainer do dBDisposeMonitor1 como “this”. 10. Agora será desenvolvida a interface de usuário, adicionando componentes ao formulário. Selecione contentPane. 11. Adicione ao formulário (this) um componente JdbNavToolBar da guia “dbSwing”. 12. Fixe a propriedade constraints do jdbNavToolBar1 como “North”. 13. Adicione um componente JdbStatusLabel da guia “dbSwing” ao this. 14. Fixe a propriedade constraints do jdbStatusLabel1 como “South”. 15. Adicione um componente TableScrollPane, também da guia “dbSwing” ao centro do formulário. 16. Coloque a propriedade constraints do tableScrollPane1 como “Center”. 17. Insira um componente JdbTable (guia “dbSwing”) ao tableScrollPane1. 18. Defina a propriedade dataSet do jdbTable1 como “queryDataSet1”. 19. Coloque a propriedade title do this como “Conexão e Leitura de dados de Tabelas”. 7 Tela de Execução Exemplo27 - Passagem de parâmetros através de uma Query Passos para elaboração da aplicação. 1. Adicione a aplicação, um componente Database da guia “DataExpress”. 2. Selecione database1 na pasta Data Access no Structure Pane e selecione a sua propriedade connection e clique sobre o botão de elipse. 3. Fixe as propriedades de connection, conforme as descrições seguintes e a figura a seguir. Propriedade Driver escolha “sun.jdbc.odbc.JdbcOdbcDriver”. Propriedade URL escolha “jdbc:odbc:Clientes”. Propriedade Username - Entre com o seu nome (opcional). Propriedade Password - Não é requerido neste caso (opcional). 4. Certifique-se que a conexão com o banco de dados foi bem sucedida através do botão “Test Connection”. 5. Adicione o componente ParameterRow da guia “DataExpress”. Este componente permite adicionar colunas que servirão de parâmetros para especificar os dados a serem mostrados. 6. Dê duplo-clique no ícone do parameterRow1 no Structure Pane, para que amplie a estrutura e exiba as colunas contidas no ParameterRow. 7. Selecione <new column> e fixe as seguintes propriedades da nova coluna a ser criada: na propriedade columnName coloque “pesquisa” e na propriedade dataType defina como “String”. 8 8. Adicione à aplicação um componente QueryDataSet da guia “DataExpress” da Paleta de Componentes. 9. Clique no botão de elipse ao lado da propriedade query do queryDataSet1, para que se abra o editor “Query”. 10. Clique na guia “Parameters” na parte superior da janela do editor “Query”. 11. Selecione a opção parameterRow1 na lista de opções do combo, como é possível ver na figura a seguir. 12. Clique na guia “Query” da janela do editor. 13. Selecione a opção database1 na lista do combo de rótulo Database. 14. Na área de texto SQL Statement coloque a seguinte declaração SQL: select * from clientes where nome like: pesquisa + '%'. 15. Clique no botão “Test Query” e certifique-se que o comando SQL está correto. Se a mensagem for “Success”, então clique no botão “OK”. 16. Adicione à aplicação um componente DBDisposeMonitor da guia “More dbSwing”. 17. Na propriedade dataAwareComponentContainer do DBDisposeMonitor coloque “this”. 18. Adicione ao contentPane um componente TableScrollPane da guia “dbSwing”. 19. Defina a propriedade constraints do tableScrollPane1 como “Center”. 20. Adicione um componente JdbTable (guia “dbSwing”) ao tableScrollPane1. 9 21. Fixe a propriedade dataSet do jdbTable1 como “queryDataSet1”. 22. Insira no contentPane um componente JPanel da guia “Swing Containers”. 23. Defina a propriedade constraints do jPanel1 como “North”. 24. Adicione ao jPanel1 um componente JLabel da guia “Swing”. 25. Coloque “Nome:” na propriedade text do jLabel1. 26. Adicione ao jPanel1 um componente JTextField da guia “Swing”. 27. Deixe a propriedade text do jTextField1 vazia. 28. Na propriedade columns do jTextField1 coloque o valor “20”. 29. Coloque “Pesquisa com passagem de parâmetros” na propriedade title do this. Tela de Execução No evento caretUpdate do jTextField1 coloque: try { parameterRow1.setString("pesquisa", (jTextField1.getText())); queryDataSet1.refresh(); } catch (Exception ex) { ex.printStackTrace(); } 10