Especialização em web com interfaces ricas Banco de Dados Apache Derby / JavaDB Prof. Fabrízzio Alphonsus A. M. N. Soares [email protected] [email protected] Instituto de Informática Universidade Federal de Goiás Aula 3 25 de maio de 2012 Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 1/1 Apache Derby / JavaDB Nesta aula você irá conhecer os seguintes componentes: Banco de dados Apache Derby / JavaDB Configuração Estrutura Ferramentas Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 2/1 Apache Derby / JavaDB I O Apache Derby é um banco de dados 100% feito em Java. Para obte-lo baixe o arquivo db-derby-10.8.1.2-bin.zip no link: http://db.apache.org/derby/releases/release-10.8.1.2.cgi Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 3/1 Instalando I Para instalar o Apache Derby é simples. Basta descompactar o arquivo com alguma ferramenta para zip. Em linux digite: 1 unzip db-derby-10.8.1.2-bin.zip Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 4/1 Instalando I Para efetuar o processo de instalação, basta configurar as variáveis de ambiente. Esta tarefa varia para cada S.O. Além disso, para tornar estas configurações definitivas você deverá fazer isto com permissões de administrador (root). Caso você não possua este privilégio, você deverá realizar esta tarefa sempre que for abrir um novo terminal ou reiniciar o computador. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 5/1 Instalando II Para configurar as variáveis no linux, entre no diretório do arquivo descompactado: 1 cd db-derby-10.8.1.2-bin e então digite os seguintes comandos: 1 2 3 export DERBY_HOME=‘pwd‘ export CLASSPATH="${DERBY_HOME}/lib/derby.jar:${DERBY_HOME}/lib/derbytools.jar" export PATH=${PATH}:${DERBY_HOME}/bin Observe que o comando da linha 2 da segunda listagem, o comando pwd está entre dois caracteres crase.1 1 Muito cuidado se for copiar e colar ou digitar os comandos. Qualquer caractere errado irá causar falhas ao tentar usar as ferramentas do banco. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 6/1 Criando e hospedando bancos de dados I Para criar bancos de dados, é necessário, inicialmente, criar um diretório que irá hospedar os demais bancos de dados. No linux, entre um diretório da sua escolha ou crie e acesse com os seguintes comandos: 1 2 mkdir bancos cd bancos Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 7/1 Criando e hospedando bancos de dados II Agora que você está dentro do diretório, vamos iniciar a criação do banco de dados. Para isto será utilizada a ferramenta ij do apache derby. Para isto, digite: 1 ij e você verá o prompt do programa escrito: 1 2 versão ij 10.8 ij> Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 8/1 Criando e hospedando bancos de dados III Agora, no prompt digite o seguinte comando: 1 connect ’jdbc:derby:bancoteste;create=true’; Observe que parâmetro do comando connect está delimitado por apóstrofos (aspas simples) e finalizado com um ponto-evírgula ; Qualquer erro irá dar erro. Porém, o erro pode demorar a aparecer. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 9/1 Utilizando o banco de dados I Pronto! Se não houveram erros até este momento, você agora tem um banco de dados. Dentro do diretório que você estava ao executar o comando ij foi criado um diretório chamado bancoteste que é o nome do seu banco de dados. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 10/1 Utilizando o banco de dados II Neste momento então, já podemos utilizar o banco de dados. Para isso vamos criar uma tabela de exemplo. Vamos criar uma tabela chamada aluno com a seguinte estrutura: matricula nome idade sexo integer varchar(50) integer char(1) Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 11/1 Utilizando o banco de dados III Para isto, vamos digitar no prompt do ij o seguinte comando de DDL/SQL: 1 create table aluno (matricula integer, nome varchar(50), idade integer, sexo char(1)); Caso você tenha tido sucesso, você verá o seguinte resultado: 1 0 linhas inseridas/atualizadas/excluídas Caso contrário, reveja seus passos anteriores. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 12/1 Executando operações I Agora que possuimos uma tabela, estamos aptos a executar os comandos para fazer um CRUD. CRUD - Create (insert), Retrieve (select), Update e Delete. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 13/1 Testando operações I Fazendo um insert: 1 insert into aluno (matricula, nome, idade, sexo) values (1, ’ Joao’, 22, ’M’); e você terá o seguinte resultado: 1 1 linha inserida/atualizada/excluída Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 14/1 Testando operações II Fazendo um select: 1 select * from aluno; e você terá o seguinte resultado: 1 2 3 MATRICULA |NOME |IDADE |SEXO ------------------------------------------------------------------------------1 |Joao |22 |M Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 15/1 Testando operações III Fazendo um update: 1 update aluno set idade = 17 where matricula = 1; e você terá o seguinte resultado: 1 1 linha inserida/atualizada/excluída Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 16/1 Testando operações IV Repetindo o select: 1 select * from aluno; e você terá o seguinte resultado: 1 2 3 MATRICULA |NOME |IDADE |SEXO ------------------------------------------------------------------------------1 |Joao |17 |M Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 17/1 Testando operações V Fazendo um delete: 1 delete from aluno where matricula = 1; e você terá o seguinte resultado: 1 1 linha inserida/atualizada/excluída Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 18/1 Testando operações VI Repetindo o select, mais uma vez: 1 select * from aluno; e você terá o seguinte resultado: 1 2 3 4 MATRICULA |NOME |IDADE |SEXO ------------------------------------------------------------------------------0 linhas selecionadas Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 19/1 Testando operações VII Para finalizar o ij, basta digitar o comando: 1 exit; Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 20/1 Observações I 1 Uma vez criado seu banco de dados, basta copiar o diretório que foi criado pelo comando connect e você poderá transportar seus dados para qualquer lugar. 2 O comando connect não precisa ter o sufixo create=true. Este comando só é necessário quando se precisa criar o banco de dados. Quando você for conectar em um banco que já existe, não use este sufixo. Isto irá garantir que você esteja conectando no banco desejado e não criando um vazio. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 21/1 Observações II 3 Se você não tiver permissão de administrador (root), você precisará executar os passos de definição das variáveis DERBY_HOME, etc. Para isto, sugiro que você crie um script que realize esta tarefa para você, bastando executar o script quando necessário reiniciar as variaveis. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 22/1 Exercício I 1 Crie um banco de dados chamado meubanco 2 Crie uma tabela chamada cliente com os campos: (codigo integer, nome varchar(50), endereco varchar(60), cpf char(11)) 3 Realize pelo menos uma operação de insert, update, delete e select para testar as operações. Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 23/1 Exercício II Tabela CLIENTE codigo nome endereco cpf integer varchar(50) varchar(60) char(11) Prof. Fabrízzio Alphonsus A. M. N. Soares | Banco de Dados Apache Derby / JavaDB 24/1