Buscar

mod 4

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 40 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Técnicas de 
Programação
Eventos, Aplicativos com Banco de Dados e Organização de 
Componentes De Layouts
Material Teórico
Responsável pelo Conteúdo:
Prof. Ms. Douglas Almendro
Revisão Textual:
Profª. Ms. Selma Aparecida Cesarin
5
Estamos iniciando nossos estudos sobre Eventos, Aplicativos com Banco de Dados, da 
Disciplina de Técnicas de Programação. 
Ao término deste estudo, desejamos que você seja capaz de interpretar e criar uma interface 
gráfica com todas as propriedades que a linguagem disponibiliza juntando com o Banco 
de Dados.
Para ajudá-lo(a), realize a leitura dos textos indicados, acompanhe e refaça os exemplos 
resolvidos, além de treinar com as atividades práticas disponíveis e suas resoluções, ao final 
do conteúdo. 
 · Nesta Unidade 4 iremos aprender como conectar nossa aplicação a um 
Banco de dados por meio da API JDBC do Java.
 · Desenvolveremos uma aplicação “CRUD”, que é o acrônimo de Create, 
Read, Update e Delete.
 · O Banco de dados que usaremos é o MySQL. É um banco gratuito, de 
fácil instalação, e é um dos mais importantes bancos de dados relacionais 
do mercado.
Eventos, Aplicativos com Banco de 
Dados e Organização de Componentes 
de Layouts
 · Operações com Banco de Dados e JDBC
 · Criando uma Base de Dados MYSQL
 · Criando uma Tabela no MYSQL
 · Criando uma Aplicação CRUD Em JAVA
6
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Contextualização
Nesta Unidade, vamos construir um projeto mais elaborado, na ferramenta NetBeans. Siga 
atentamente o tutorial de criação de projetos e pacotes.
Abordaremos alguns componentes farão parte do layout da tela de uma interface gráfica, 
juntamente com o Banco de dados. 
Assim, durante o curso, veremos, também, que existem várias situações nas quais podemos 
usar os componentes gráficos, incluindo-os nos projetos mais elaborados.
Esse ferramental teórico servirá para sua vida como analista/programador.
7
Operações com Banco de Dados e JDBC
O QUE É JDBC ?
JDBC significa Java Database Connectivity. É uma API Java padrão para banco de dados 
independente de conectividade entre a linguagem de programação Java e uma grande variedade 
de bancos de dados.
Esta API fornece um conjunto de interfaces para cada uma das tarefas comumente associado 
ao uso de banco de dados, como por exemplo:
 · Conexão com um banco de dados;
 · Consultas no banco de dados;
 · Visualização ou Alteração de registros.
O Pacote para acessar essas interfaces é java.sql.
Dentro do JDBC, ainda existe outro componente indispensável para acessar o Banco de 
dados, o Driver. Para conectarmos a um Banco de dados, precisamos fazer uso do Driver 
específico para o Banco.
 
 Explore
Saiba mais sobre o Driver MySQL em: http://dev.mysql.com/doc/connector-j/en/index.html.
VAMOS À PRÁTICA
Antes de qualquer coisa, precisamos criar o ambiente de Banco de dados. Devemos ter um 
serviço de banco de dados rodando (Servidor de Banco de dados) e uma Database com a 
tabela que nossa aplicação vai manipular.
Como dito, iremos usar o MySQL como Banco de dados de nossa aplicação. Para o nosso 
exemplo, iremos baixar uma versão Portable de um servidor MySQL, o Uniform Server. Saiba 
mais sobre esse software em http://www.uniformserver.com/.
Para criar as tabelas necessárias para a nossa aplicação, usaremos o Heidisql. Saiba mais 
sobre esse software em http://www.heidisql.com/
http://dev.mysql.com/doc/connector-j/en/index.html
http://www.uniformserver.com/
http://www.heidisql.com/
8
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Criando uma Base de Dados MYSQL
Passo 1
Baixe o Uniform Server acessando o link: http://sourceforge.net/projects/miniserver/files/
latest/download?source=files. Localize o arquivo e clique duas vezes sobre o executável e 
selecione a opção “Extract”.
Após extrair todos os arquivos, localize e execute o arquivo “UniController”. Digite 123 para 
a senha do Root e clique em OK. Na próxima tela, clique em OK novamente.
Passo 2
Ative o serviço MySQL clicando no botão “Start MySQL”. Se o serviço for inicializado com 
sucesso, o quadro ao lado do botão ficará verde.
http://sourceforge.net/projects/miniserver/files/latest/download?source=files
http://sourceforge.net/projects/miniserver/files/latest/download?source=files
9
Passo 3
Crie uma base de dados clicando no menu MySQL/Database create – delete.
Digite “dbAula4” no campo Enter database name to create e clique em Create Database e 
feche a tela.
10
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Na tela principal do UniServer, confira se o Serviço está rodando (indicador em verde) e 
minimize a aplicação. Nunca feche este aplicativo.
Feito isso, a aplicação vai para a bandeja do Windows; para maximizar o programa, é só 
clicar duas vezes sobre o ícone.
11
Concluindo todos esses passos, temos:
 · Um serviço MySQL rodando; 
 · Uma Base de dados MySQL ativa.
Criando uma Tabela no MYSQL
Passo 1
Baixe o Heidisql acessando o link: http://www.heidisql.com/downloads/releases/
HeidiSQL_8.3_Portable.zip. Extraia a pasta baixada, localize o arquivo “heidisql” e execute-o.
http://www.heidisql.com/downloads/releases/HeidiSQL_8.3_Portable.zip
http://www.heidisql.com/downloads/releases/HeidiSQL_8.3_Portable.zip
12
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Na tela seguinte, clique no botão “New”.
É preciso apenas digitar a senha do root (123); a configuração desta tela deve ser como na 
figura a seguir:
13
Clique no botão “Save” e em seguida no botão “Open”.
Passo 2
Clique sobre “dbaula4”.
14
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Na aba “Query”, digite a seguinte instrução SQL:
CREATE TABLE `curso` (
 `Sigla` CHAR(10) ,
 `Nome` VARCHAR(64) ,
 `Descricao` VARCHAR(256) 
)
Em seguida, pressione a tecla F9 ou clique no botão indicado na figura a seguir.
15
Agora, vamos dar um “refresh” para atualizar as informações exibidas de nossa base de dados. 
Clique com o botão direito do mouse sobre a nossa database e escolha a opção “Refresh”.
Podemos agora perceber que foi criada uma tabela com o nome de Curso.
Concluímos o ambiente de banco de dados. Agora podemos seguir adiante e criar uma 
aplicação que vai se conectar e manipular tabelas em nosso banco de dados. 
16
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Criando uma Aplicação CRUD Em JAVA 
Para essa etapa, precisamos:
 · Netbeans7 ou superior;
 · SDK Java 6 ou superior;
 · Acesso a um banco de dados MySQL.
Como já vimos, “CRUD” é o acrônimo de Create, Read, Update e Delete. Iremos 
desenvolver uma aplicação que terá acesso a um banco de dados MySQL.
Nossa aplicação irá executar a inserção, alteração, leitura e exclusão de dados em uma tabela.
Para nosso exemplo, certifique-se sempre se o serviço de banco de dados está ativo.
Vamos à Prática
Passo 1
Abra o Netbeans, clique no menu Arquivo/Novo Projeto.
17
Escolha a opção “Aplicação Java”.
Digite “Aula 4” no campo Nome do Projeto. Em seguida, clique no botão “Procurar”.
18
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Crie uma pasta chamada Aula 4 na área de trabalho e clique em abrir. Na tela seguinte, 
clique em Finalizar.
Passo 2
Clique no nome do projeto com o botão direito do mouse e em seguida selecione a opção 
Novo/FormJFrame.
19
Digite “Principal” no campo Nome da Classe e clique em finalizar.
Passo 3
Clique com o botão direito do mouse em cima do Frame e selecione a opção Definir Layout/
Layout Nulo.
20
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Abra a paleta Swing e adicione os componentes, como na figura a seguir.
Os componentes a serem adicionados são:
 · 8 – Botões (JButton);
 · 2 – Campos de texto (JTextField);· 1 – Área de Texto (JTextArea);
 · 3 – Rótulos (JLabel);
Altere a propriedade “Nome da variável” dos seguintes componentes:
 · Para o campo referente à Sigla, altere para “txtSigla”;
 · Para o campo referente à Nome, altere para “txtNome”;
 · Para o campo referente à Descrição, altere para “txtDescr”.
21
Lembrando que para acessar a propriedade “Nome da variável” do componente, é preciso 
clicar com o botão direito do mouse sobre o componente, selecionar a opção Propriedades e na 
Aba código alterar a propriedade desejada.
Passo 3
Adicione o Drive JDBC MySQL. Clique com o botão direito sobre a pasta Bibliotecas e 
selecione a opção Adicionar Biblioteca.
22
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Na tela a seguir, localize e selecione a opção Driver JDBC do MySQL e clique em Adicionar 
Biblioteca.
Passo 4
Importe as classe dos pacotes javax.swing e java.sql digitando nas primeiras linhas do código 
Java o seguinte:
importjavax.swing.*;
importjava.sql.*;
Crie as seguintes variáveis logo a seguir da linha Public class Principal:
public Connection conn = null;
public Statement stmt;
public ResultSet rs;
23
Passo 5
Crie um evento ActionPerformed para o botão “Inserir”.
No evento criado, digite o seguinte código.
try {
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager.getConnection(“jdbc:mysql://localhost/dbaula4”,
 “root”, “123”);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
 String sql = “INSERT INTO cursoVALUES(‘”
 + txtSigla.getText() + “’,’”
 + txtNome.getText() + “’,’”
 + txtDesc.getText() + “’)”;
JOptionPane.showMessageDialog(null, sql);
int i = 0;
 i = stmt.executeUpdate(sql);//executando o comando sql
24
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
stmt.close();
if (i > 0) {
JOptionPane.showMessageDialog(null, “Curso cadastrado com sucesso!”);
abreTabela();
 }
 } catch (ClassNotFoundException e) {
System.out.println(e);
 } catch (SQLException e) {
System.out.println(e);
}
Vamos à explicação do código
•	 Linha 187 – Esse comando registra a Classe do Driver JDBC;
•	 Linha 188 – Cria um objeto de conexão, passando como parâmetros o endereço, usuário 
e senha do banco de dados;
•	 Linha 190 – Cria um objeto Statement e é por meio desse objeto que iremos executar 
operações no banco de dados;
•	 Linha 192 – Atribui uma instrução SQL a uma variável string;
•	 Linha 196 – Para fins didáticos, exibimos o conteúdo da variável string (sql) em um 
JOptionPane;
•	 Linha 198 – Executa instrução SQL e atribui resultado a uma variável int;
•	 Linha 202 – Se i for maior que zero, significa que a instrução SQL foi executada com 
corretamente, assim é exibida uma mensagem de sucesso;
•	 Linha 206 – Caso ocorra alguma exceção, o sistema exibe o erro.
25
Passo 6
Crie um método void chamado atualiza_campos. E digite o seguinte código:
public void atualiza_campos() {
try {
txtSigla.setText(“” + rs.getString(“sigla”));
txtNome.setText(“” + rs.getString(“Nome”));// 
txtDesc.setText(“” + rs.getString(“descricao”));
 } catch (SQLException e) {
System.out.println(e);
}
}
Vamos à explicação do código
•	 Linhas 328 a 330 – Atribui aos campos os valores contidos na variável ResultSet. Note que 
é passado como parâmetro do método getString o nome da coluna na qual desejamos 
obter o valor.
Passo 7
Crie um método void chamado abrirTabela. E digite o seguinte código:
String query1 = “Select * from curso”;
try {
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager.getConnection(“jdbc:mysql://localhost/dbaula4”,
 “root”, “123”);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_READ_ONLY);
rs = stmt.executeQuery(query1);//executando o comando sql
26
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
rs.first();//estamos movendo o cursor para o primeiro registro pesquisado
atualiza_campos();
 //conteudo da coluna sigla
} catch (ClassNotFoundException e) {
System.out.println(e);
 } catch (SQLException e) {
System.out.println(e);
}
Vamos à explicação do código
•	 Linha 352 – Atribui uma instrução SQL (seleção) a uma variável string;
•	 Linha 344 – Esse comando registra a Classe do Driver JDBC;
•	 Linha 345 – Cria um objeto de conexão passando como parâmetros o endereço, usuário 
e senha do banco de dados;
•	 Linha 347 – Cria um objeto Statement e é por meio desse objeto que iremos executar 
operações no banco de dados;
•	 Linha 349 – Executa comando Statement que recebe como parâmetro a instrução SQL e 
atribui o resultado a uma variável do tipo ResultSet;
•	 Linha 350 – Executa comando que posiciona o resultado no primeiro registro retornado 
da seleção da tabela curso;
•	 Linha 351 – Chama método atualiza_campos para exibir o resultado de nossa instrução 
SQL nos campos de nossa interface gráfica.
27
Passo 8
Crie um método para o botão “Deletar” e digite o seguinte código:
String query1 = “DELETE FROM curso WHERE(sigla=”;
 String a = txtSigla.getText();
try {
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager.getConnection(“jdbc:mysql://localhost/dbaula4”, 
“root”, “123”);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
 String sql = query1 + “’” + txtSigla.getText() + “’)”;
JOptionPane.showMessageDialog(null, sql);
int i = 0;
i = stmt.executeUpdate(sql);//executando o comando sql
stmt.close();
if (i > 0) {
JOptionPane.showMessageDialog(null, “Curso deletado com sucesso!”);
 // limpando campos
txtSigla.setText(“”);
txtNome.setText(“”);
txtDesc.setText(“”);
abreTabela();
 }
 } catch (ClassNotFoundException e) {
System.out.println(e);
 } catch (SQLException e) {
System.out.println(e);
}
28
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Vamos à explicação do código
•	 Linha 210 - Atribui uma instrução SQL (seleção) a uma variável string;
•	 Linha 211 – Atribui valor do campo Sigla para uma variável string;
•	 Linha 213 – Registra a Classe do Driver JDBC;
•	 Linha 214 – Cria um objeto de conexão passando como parâmetros o endereço, usuário 
e senha do banco de dados;
•	 Linha 215 – Cria um objeto Statement e é por meio desse objeto que iremos executar 
operações no banco de dados;
•	 Linha 217 – Implementa instrução SQL e atribui o resultado a uma variável string;
•	 Linha 218 – Para fins didáticos, exibimos o conteúdo da variável string (sql) em um 
JOptionPane;
•	 Linha 220 – Executa instrução SQL e atribui resultado a uma variável int.
Passo 9
Crie um evento ActionPerformed para o botão “Atualizar” e digite o seguinte código:
29
 String query1 = “UPDATE curso SET sigla=”;
 String a = txtSigla.getText();
try {
Class.forName(“com.mysql.jdbc.Driver”);
conn = DriverManager.getConnection(“jdbc:mysql://localhost/dbaula4”, “root”, “123”);
stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
 String sql = query1 + “’” + txtSigla.getText() + “’,”
+ “nome=’” + txtNome.getText() + “’,”
+ “descricao=’” + txtDesc.getText()
 + “’ where sigla=” + “’” + txtSigla.getText() + “’”;
JOptionPane.showMessageDialog(null, sql);
int i = 0;
i = stmt.executeUpdate(sql);//executando o comando sql
int y = 0;
stmt.close();
 y = stmt.CLOSE_CURRENT_RESULT;
if (i > 0) {
JOptionPane.showMessageDialog(null, “Curso alterado com sucesso!”);
abreTabela();
 }
 } catch (ClassNotFoundException e) {
System.out.println(e);
 } catch (SQLException e) {
System.out.println(e);
}
30
Unidade: Eventos, Aplicativos com Banco de Dados e Organizaçãode Componentes de Layouts
Vamos à explicação do código
•	 243 – Atribui uma instrução SQL (seleção) a uma variável string;
•	 244 – Atribui valor do campo Sigla para uma variável string;
•	 246 – Registra a Classe do Driver JDBC;
•	 247 – Cria um objeto de conexão passando como parâmetros o endereço, usuário e 
senha do banco de dados;
•	 248 – Cria um objeto Statement e é por meio desse objeto que iremos executar operações 
no banco de dados;
•	 250 – Implementa instrução SQL e atribui o resultado a uma variável string;
•	 254 – Para fins didáticos, exibimos o conteúdo da variável string (sql) em um JOptionPane;
•	 256 – Executa instrução SQL e atribui resultado a uma variável int.
Passo 10
Crie um evento ActionPerformed para o botão “Limpar Campos” e digite o seguinte código:
txtSigla.setText(“”);
txtNome.setText(“”);
txtDesc.setText(“”);
Esse código é simples; aqui, estamos atribuindo uma string vazia para a propriedade setText 
dos campos textos de nossa aplicação.
Navegação entre Registros 
Para navegar entre registros de nossa tabela Curso, usaremos os métodos first, last, next e 
previous de nosso objeto ResultSet.
31
Passo 10
Crie um evento ActionPerformed para o botão “Primeiro” e digite o seguinte código:
try {
rs.first();
atualiza_campos();
 } catch (SQLException e) {
System.out.println(e);
}
Vamos à explicação do código
•	 278 – Executa o método first do objeto rs;
•	 279 – Chama o método atualiza_campos;
•	 281 – Caso ocorra alguma exceção, o sistema exibe o erro.
Passo 11
Crie um evento ActionPerformed para o botão “Anterior” e digite o seguinte código:
try {
rs.previous();
atualiza_campos();
} catch (SQLException e) {
System.out.println(e);
}
32
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Vamos à explicação do código
•	 311 – Executa o método previous do objeto rs;
•	 312 – Chama o método atualiza_campos;
•	 314 – Caso ocorra alguma exceção, o sistema exibe o erro.
Passo 12
Crie um evento ActionPerformed para o botão “Próximo” e digite o seguinte código:
try {
rs.next();
atualiza_campos();
} catch (SQLException e) {
System.out.println(e);
}
Vamos à explicação do código
•	 300 – Executa o método next do objeto rs.
•	 301 – Chama o método atualiza_campos.
•	 303 – Caso ocorra alguma exceção, o sistema exibe o erro.
33
Passo 13
Crie um evento ActionPerformed para o botão “Último” e digite o seguinte código:
try {
rs.last();
atualiza_campos();
} catch (SQLException e) {
System.out.println(e);
}
Vamos à explicação do código
•	 289 – Executa o método last do objeto rs;
•	 290 – Chama o método atualiza_campos;
•	 292 – Caso ocorra alguma exceção, o sistema exibe o erro.
Passo 14
Clique com o botão direito do mouse sobre uma área vazia do form e selecione Evento/ 
Window / windowOpened.
34
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
No método criado digite o seguinte código.
abreTabela();
Vamos Testar!
Pressione Shift + F11 ou clique no menu Executar/ Limpar e Construir Projeto.
Em seguida, pressione F6 ou clique no menu Executar/ Executar Projeto.
35
Digite os Campos e clique em Inserir.
Agora, cadastre outros cursos, teste os botões Deletar e Atualizar. Com mais de um registro 
em nossa tabela, poderemos testar os botões de navegação entre os registros (Primeiro, Anterior, 
Próximo e Último).
Nota 
Lembre-se sempre de que para nossa aplicação rodar com sucesso, o serviço de banco de 
dados deve estar rodando.
36
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Material Complementar
Nesta Unidade, vimos as operações básicas ofertadas pelo JDBC. Podemos nos aprofundar 
mais no assunto no site da própria Oracle, na ferramenta Java, e ver os comandos de manipulação 
de dados.
Quanto ao banco de dados, tanto o Oracle, Mysql, SQLServer, entre outros, todos usam o 
SQL padrão; portanto, qualquer site oficial destas ferramentas dará o suporte necessário para 
nossas aplicações.
A seguir, os links das principais dicas das ferramentas:
 
 Explore
http://www.oracle.com/br/products/database/overview/index.html;
http://www.oracle.com/br/products/mysql/index.html;
http://www.sqlserverdicas.com/.
http://www.oracle.com/br/products/database/overview/index.html
http://www.oracle.com/br/products/mysql/index.html
http://www.sqlserverdicas.com/
37
Referências
Aplicação Java
https://mega.co.nz/#!oBI2yYyI!hwAhxr70CXHHtyV0SgO_IkbwqIV1v164Y5xOFahXHxA
Ferramenta para criar tabela MySQL
https://mega.co.nz/#!oJ5XXJIK!xxG_wsDhVDh_VnQdbN6TYNkYLX3K5QZjPMWuBP7b4jY
Servidor de Banco de dados
https://mega.co.nz/#!8BY1kYSY!20GhxcXLB7pIvATvr299tuPXDTpTCcZvr8ohyCVHP9o
https://mega.co.nz/#!oBI2yYyI!hwAhxr70CXHHtyV0SgO_IkbwqIV1v164Y5xOFahXHxA
https://mega.co.nz/#!oJ5XXJIK!xxG_wsDhVDh_VnQdbN6TYNkYLX3K5QZjPMWuBP7b4jY
https://mega.co.nz/#!8BY1kYSY!20GhxcXLB7pIvATvr299tuPXDTpTCcZvr8ohyCVHP9o
38
Unidade: Eventos, Aplicativos com Banco de Dados e Organização de Componentes de Layouts
Anotações

Continue navegando