Banco de Dados em Aplicativos Mobile Java
Banco de Dados em Aplicativos Mobile Java
Banco de Dados em Aplicativos Mobile Java
SUMÁRIO
BANCO DE DADOS EM APLICATIVOS MOBILE JAVA - SA1.................................................. 4
PARA COMEÇAR................................................................................................................................... 5
SITUAÇÃO-PROBLEMA...................................................................................................................... 6
DESAFIO 1............................................................................................................................................... 7
INTRODUÇÃO....................................................................................................................................... 8
BANCO DE DADOS.............................................................................................................................. 8
MODELOS DE BANCO DE DADOS................................................................................................. 8
MODELO RELACIONAL....................................................................................................................11
MER.........................................................................................................................................................13
CHAVE....................................................................................................................................................21
DER – DIAGRAMA DE ENTIDADE E RELACIONAMENTO....................................................24
MODELAGEM DE DADOS...............................................................................................................25
TIPOS DE DADOS...............................................................................................................................26
SISTEMA DE GERENCIAMENTO DE BANCO DE DADOS (SGBD)......................................31
BANCO DE DADOS EM APLICATIVOS MOBILE.......................................................................36
REGRAS DE SEGURANÇA................................................................................................................39
INSTALAÇÃO E CONFIGURAÇÃO DE BANCO DE DADOS..................................................39
NESTE DESAFIO..................................................................................................................................41
DESAFIO 2.............................................................................................................................................42
INTRODUÇÃO.....................................................................................................................................43
LINGUAGEM E DEFINIÇÃO DE MANIPULAÇÃO DE DADOS..............................................44
TRATAMENTO DE DADOS...............................................................................................................51
SEGURANÇA DA INFORMAÇÃO..................................................................................................63
NESTE DESAFIO..................................................................................................................................73
PARA CONCLUIR.................................................................................................................................74
REFERÊNCIAS......................................................................................................................................75
CRÉDITOS..............................................................................................................................................76
MATERIAL COMPLEMENTAR.........................................................................................................77
SUMÁRIO
BANCO DE DADOS EM APLICATIVOS MOBILE JAVA - SA2............................................. 154
PARA COMEÇAR.............................................................................................................................. 155
SITUAÇÃO-PROBLEMA................................................................................................................. 156
DESAFIO 1.......................................................................................................................................... 157
LINGUAGEM DE PROGRAMAÇÃO JAVA................................................................................. 158
TÉCNICAS DE PROGRAMAÇÃO................................................................................................. 160
FUNÇÕES E MÉTODOS................................................................................................................. 164
CLASSES............................................................................................................................................. 168
BIBLIOTECAS E APIS...................................................................................................................... 169
FERRAMENTAS................................................................................................................................. 180
NA PRÁTICA...................................................................................................................................... 180
NESTE DESAFIO............................................................................................................................... 181
DESAFIO 2.......................................................................................................................................... 182
INTRODUÇÃO.................................................................................................................................. 183
CRIAÇÃO DE CLASSES.................................................................................................................. 183
HERANÇA........................................................................................................................................... 188
INTERFACE......................................................................................................................................... 193
COMPOSIÇÃO.................................................................................................................................. 196
POLIMORFISMO.............................................................................................................................. 198
EXCEÇÕES.......................................................................................................................................... 200
CONEXÃO COM BANCO DE DADOS....................................................................................... 204
NESTE DESAFIO............................................................................................................................... 206
PARA CONCLUIR.............................................................................................................................. 207
REFERÊNCIAS................................................................................................................................... 208
CRÉDITOS........................................................................................................................................... 209
MATERIAL COMPLEMENTAR...................................................................................................... 210
PARA COMEÇAR
Este material aborda conceitos relacionados às definições e aos tipos de banco de
dados, assim como apresenta orientações de como instalá-los, configurá-los e aplicar
a linguagem de programação em Java, além de diretivas de segurança da informação.
O estudo de tais temas também será necessário para que você resolva a situação-
problema a seguir.
SITUAÇÃO-PROBLEMA
Você foi contratado pela Datamobile, empresa com foco em criação, manutenção,
gerenciamento e segurança de banco de dados para aplicativos mobile.
Desafio 1
Desafio 2
DESAFIO 1
Nesta etapa, você deverá resolver o desafio 1:
INTRODUÇÃO
Acesse o material e confira o vídeo de Introdução sobre Banco de Dados em
Aplicativos Mobile.
BANCO DE DADOS
Banco de dados é uma coleção organizada
de dados que são armazenados para serem
consultados e manipulados. Esses dados
estão relacionados ao mundo real e podem
ser coletados para uma aplicação específi-
ca ou para agregar mais informação a outro
conjunto de dados já existente em outra
aplicação, o que permite o aumento do es-
copo das consultas.
ESTRUTURADOS
RELACIONAL
2 Simplicity 2021 5 2
Rise from
3 2021 6 1
the Ashe
4 Stay like this 2021 4 1
HIERÁRQUICO
Estrutura os dados na forma de árvore invertida. Assim, uma única tabela atua como
raiz da árvore de tabelas e une-se abaixo às tabelas intermediárias, que atuam como
Neste modelo, as relações são representadas pelos termos pai/filho, um pai pode
ter associação com mais de um filho e um filho somente com um pai.
NÃO ESTRUTURADOS
NÃO RELACIONAIS
Os bancos de dados não relacionais, conhecidos também como NoSQL (Not Only
SQL), surgiram como alternativa para situações nas quais os bancos relacionais não
atendem como repositórios para dados mistos (imagens, mapas e tabelas), os quais
não podem ser tabulados em linhas e colunas, mas sim como documentos ou regis-
tros de chave e valor.
Você sabia?
A Teoria de Banco de Dados Relacional foi apresentada em junho de
1970 como um trabalho intitulado: “Um modelo relacional de dados
?
para grandes bancos de dados compartilhados”, apresentado pelo Dr.
Edgar F. Codd, um cientista pesquisador da IBM. A teoria foi baseada em
modelo matemático, compreendendo a teoria dos conjuntos e lógica
de predicados de primeira ordem. A parte no nome “Relacional” deriva
do termo relação, que faz parte da teoria de conjuntos na matemática.
MODELO RELACIONAL
O Modelo Relacional é o modelo conceitual mais popular usado para projetar um
banco de dados. Ele projeta o mundo real como:
Importante!
Os bancos de dados relacionais são transacionais1, o que garante que o
estado de todo o sistema seja consistente a qualquer momento. Eles
!
oferecem a exportação e importação de dados mesmo enquanto o
banco de dados está em execução, facilitando a restauração em caso
de falha. Alguns bancos de dados relacionais oferecem o recurso para
o espelhamento dos dados de forma contínua, o que minimiza a perda
de dados na restauração a praticamente zero. Muitas vezes, inclusive,
prometem a possibilidade de criação de réplicas de leitura e reduzem a
concorrência no acesso aos dados. Essas réplicas de leitura podem ser
promovidas a instâncias de leitura/gravação para recuperação de desastres.
MER
O Modelo Entidade Relacionamento (MER) é utilizado para descrever o domínio de
um sistema e foi publicado em 1976 por Peter Chen. Ele descreve:
ENTIDADES
FORTES E FRACAS
A entidade forte não depende de outra entidade para existir. No exemplo a seguir,
que apresenta o relacionamento entre Banda Musical e Música, a entidade Banda
é a entidade forte. A entidade Música depende da entidade Banda para existir,
logo, é uma entidade fraca.
A Entidade Forte — Banda e a Entidade Fraca — Música
ASSOCIATIVA
ATRIBUTOS
SIMPLES
COMPOSTO
MULTIVALORADO
DETERMINANTE
O atributo determinante identifica de forma única uma entidade, ou seja, não pode
haver dados repetidos.
Devemos considerar que toda tabela no banco de dados precisa ter um atributo
determinante, que também chamamos de chave primária. Assim, se a entidade
não oferecer uma sugestão de
atributo determinante, criamos
um atributo ID que terá seu valor
iniciando em 1 e sequencialmente
será incrementado para cada
novo registro que for adicionado.
Esse é um princípio comum da
análise e modelagem de dados. Fonte: próprio autor
RELACIONAMENTOS
TIPOS DE RELACIONAMENTO
UM PARA UM – 1:1
RELAÇÃO UM PARA UM ENTRE O MEMBRO DE UMA BANDA E SEU
REGISTRO DE MÚSICO.
A relação um para muitos ocorre quando um registro de uma tabela está relacionado
com um ou mais registros de outra tabela. A seguir, as imagens das tabelas ilustram
exemplos desse tipo de relação.
Uma banda musical pode ter um ou mais membros. Isso define uma relação de um
para muitos, como mostra o exemplo desta tabela.
Caso a tabela com cardinalidade N seja uma entidade fraca, então, o atributo
identificador da tabela com cardinalidade 1 deve ser mapeado de forma a compor a
chave primária da tabela criada para a entidade com cardinalidade N, pois mantém
a dependência funcional em relação à entidade com cardinalidade 1.
No mapeamento entre a banda e suas músicas, a música não existe sem uma banda,
assim, a música é considerada entidade fraca e, nesse caso, a chave estrangeira na
tabela Banda deve fazer composição com a chave candidata da tabela Música, para
formar a chave primária na tabela Música. A chave candidata é a coluna na tabela
que contém a informação que pode identificar o registro. Na situação apresentada,
a coluna idMusica é a chave candidata.
CHAVE
O conceito de chave em banco de dados é importante para implementar restrições
e garantir a integridade referencial dos dados. A chave é um atributo ou grupo
de atributos cujos valores podem ser usados para identificar exclusivamente uma
entidade individual em um conjunto de entidades.
Para entender melhor, vamos conhecer alguns tipos de chave: primária e estrangeira.
CHAVE PRIMÁRIA
CHAVE ESTRANGEIRA
Uma chave estrangeira é uma coluna ou um conjunto de colunas em uma tabela,
cujos valores correspondem aos valores da chave primária em outra tabela. Para
adicionar uma linha com um determinado valor de chave estrangeira, deve haver
uma linha na tabela relacionada com o mesmo valor de chave primária.
Dica!
As chaves primárias podem ser geradas automaticamente por me-
canismos nativos encontrados em alguns gerenciadores de banco
de dados ou pela utilização de sequenciamento das chaves imple-
mentado com a utilização de tabelas dedicadas. Nesse caso, sem-
pre que houver a criação de novos registros, a tabela dedicada é
consultada para a obtenção da nova chave primária a ser utilizada.
A utilização de sequências ou geradores de chave é opcional e de-
finida na criação da tabela.
INTEGRIDADE DE CHAVES
Acesse o material para ouvir o podcast e faça o download do PDF com a transcrição
do áudio.
Arquivo: Pod01_Integridade_de_Chaves.pdf
MODELAGEM DE DADOS
A concepção do banco de dados e seu processo de implementação começam com
a coleta de requisitos e especificações do projeto. A próxima etapa é construir um
modelo abstrato ou conceitual de um banco de dados com base nesses requisitos.
Essa fase é conhecida como modelagem de dados. A modelagem de dados é uma
fase importante no projeto de um banco de dados de sucesso. Ela se concentra
principalmente em quais dados são necessários e como eles devem ser organizados,
em vez de quais operações devem ser realizadas nos dados.
TABELAS
As tabelas são as primeiras estruturas que você define no banco de dados. Você
determina os vários assuntos que as tabelas representarão, a partir dos objetivos
obtidos na análise de necessidades do projeto de modelagem de dados. As tabelas
são entidades que se relacionam entre si. Um banco de dados pode conter uma ou
mais tabelas. Cada tabela é composta por linhas e colunas.
LINHAS E COLUNAS
As linhas são um conjunto de valores de atributos de um mesmo elemento e também
podem ser chamadas de registros ou tuplas. Cada linha possui um Identificador
exclusivo, chamado chave, para não haver duplicidade de registros.
CAMPOS
Os campos são componentes da tabela e são a base do banco de dados. Eles
representam características dos assuntos que são importantes para uma organização.
TIPOS DE DADOS
As informações inseridas dentro dos campos das tabelas são os dados. Há vários
tipos dados: texto (Strings), numéricos, datas, entre outros.
Acompanhe a seguir alguns exemplos de campos de dados mais utilizados e como eles
são tratados.
TEXTOS (STRINGS)
Os textos são representados como uma sequência de caracteres com os tipos CHAR
e VARCHAR. O tamanho máximo suportado por CHAR são 255 caracteres e o
VARCHAR 65.535 caracteres. A diferença entre CHAR e VARCHAR é que o primeiro
ocupará o total do tamanho informado na definição do campo mesmo que esteja
vazio, enquanto o VARCHAR ocupará somente o que for atribuído ao texto. O
tipo VARCHAR é o mais utilizado justamente por permitir economia de espaço no
armazenamento da informação.
Dica!
Vale lembrar que o tamanho máximo para um registro é de 65.535.
Assim, se houver a necessidade de utilizar um campo texto maior
que 1.000 caracteres, opte por utilizar o campo do tipo TEXT que
discutiremos em seguida.
NUMÉRICOS
Para os números inteiros, temos os tipos da tabela conforme abaixo, com seus
valores máximos suportados. O tipo INT é o mais utilizado por cobrir a faixa de
valores bem abrangente.
Os tipos FLOAT e DOUBLE não são recomendados quando os campos forem usados
para estabelecer comparações, por não conterem exatamente a mesma informação
que foi inserida em relação, como a representação interna, por exemplo:
DATAS
Os tipos de dados mais comumente utilizados são DATE para registrar uma
determinada data e DATETIME, quando há necessidade de ter o horário armazenado
juntamente com a data.
Dica!
Se em algum momento houver a necessidade de armazenar uma
informação que indique uma condição de VERDADEIRO ou FALSO, o
tipo apropriado é o BOOL. Nele o valor 0 (zero) representa FALSO e
qualquer outro valor representa VERDADEIRO.
Caso seja necessário o armazenamento de textos longos, o tipo TEXT
que suporta até 65.535 caracteres e o LONGTEXT que suporta até 4Gib
(4.294.967.295) de caracteres são os recomendados.
Para armazenar conteúdo binário, tais como, fotos, vídeos, músicas, exis-
tem os tipos BLOB e LPONGBLOB, em que o primeiro suporta até 64Kib
(65535) bytes e o segundo 4Gib (4.294.967.295) bytes de conteúdo.
A primeira forma normal assegura que não existam repetições de valores nos
atributos, nem grupos repetidos de atributos das entidades de um modelo de
dados. Também visa eliminar o aninhamento de tabelas para que cada uma
apresente informações de um único assunto. Não podemos ter mais de um
assunto em uma tabela.
Uma relação está na segunda forma normal quando os atributos simples devem
depender unicamente da chave primária da tabela. Assim, como as colunas da
tabela, que não são dependentes dessa chave, devem ser removidas da tabela
principal, cria-se uma tabela utilizando esses dados.
Tabela com colunas cujos dados não pertencem diretamente à informação principal.
A relação está na terceira forma normal quando todos os atributos da tabela são
funcionalmente independentes uns dos outros, ao mesmo tempo em que devem
ser dependentes exclusivamente da chave primária da tabela.
A tabela à esquerda tem a coluna total que é dependente das colunas preço unitário
e quantidade, e à direita está a tabela após a aplicação da 3ª forma normal
Importante!
Para estar em uma forma normal, a tabela precisa estar obrigatoriamente
nas formas normais anteriores.
!
Por exemplo: uma tabela somente estará na terceira forma normal se
estiver também na primeira e segunda formas normais.
SISTEMA DE GERENCIAMENTO
DE BANCO DE DADOS (SGBD)
Os sistemas de gerenciamento de banco de dados (SGBD) são softwares que
fornecem os mecanismos para gerenciar o acesso, armazenar, manipular e recu-
perar os dados de um ou mais banco de dados. Juntos, os dados, os sistemas de
gerenciamento de banco de dados e os programas associados, são chamados de
Sistemas de Banco de Dados.
ROBUSTEZ
Fonte: Pixabay
INTEROPERABILIDADE
FUNCIONALIDADES DO SGBD
ESTRUTURA DO SGBD
COMPONENTES
Para saber mais, veja as imagens a seguir que ilustram as plataformas Room Database
e Core Data.
REGRAS DE SEGURANÇA
A segurança desempenha um papel importante nos sistemas de banco de dados
e se refere à proteção do acesso indevido ou da manipulação não autorizada de
dados. O sistema de banco de dados gerencia grandes conjuntos de informações
que precisam ser protegidos de pessoas não autorizadas.
INSTALAÇÃO E CONFIGURAÇÃO
DE BANCO DE DADOS
Para que possamos estruturar os dados, a fim de efetuar consultas posteriores,
necessitamos de um gerenciador de banco de dados. Assim, os próximos passos
auxiliarão na instalação do gerenciador MySQL para que você possa prosseguir com
seus estudos.
PDF
Acesse o passo a passo de instalação e configuração do gerenciador MySQL.
Arquivo: PDF01_InstConfigMySQL_Windows_v01.pdf
NESTE DESAFIO...
BANCO DE DADOS EM APLICATIVOS MOBILE COM JAVA |
DESAFIO 1
Você estudou sobre:
BANCO DE DADOS
MODELOS DE BANCO DE DADOS
MODELO RELACIONAL
MER
• Entidades
• Atributos
• Relacionamentos
» Tipos de Relacionamento
• Um para um – 1:1
• Um para muitos – 1:N ou N:1
• Muitos para muitos – N:N
CHAVE
• Integridade de chaves
NO PRÓXIMO DESAFIO...
Você estudará como criar o banco de dados, aplicando regras de segurança e níveis
hierárquicos.
DESAFIO 2
No desafio anterior, você estudou como modelar o projeto
de banco de dados, aplicando o modelo relacional, além de
instalar e configurar o gerenciador MySQL.
INTRODUÇÃO
Structured Query Language - SQL é uma linguagem de banco de dados projetada
para gerenciar dados mantidos em um sistema de gerenciamento de banco de
dados relacional.
Fonte: Pixabay
+
Saiba mais
A SQL foi desenvolvida inicialmente pelos pesquisadores da IBM,
Raymond Boyce e Donald Chamberlin, no início dos anos 1970. A
versão inicial, chamada SEQUEL - Structured English Query Language, foi
projetada para manipular e recuperar dados armazenados no sistema
de gerenciamento de banco de dados quase relacional da IBM, System
R. No final dos anos 70, a Relational Software Inc., que agora é a Oracle
Corporation, apresentou a primeira implementação de SQL disponível
comercialmente: Oracle V2 para computadores VAX.
LINGUAGEM E DEFINIÇÃO
DE MANIPULAÇÃO DE DADOS
Em um Sistema de Gerenciamento de Banco de Dados, a linguagem do banco de
dados SQL é usada para:
Dica!
Utilizamos a SQL como uma linguagem de definição de dados - DDL
para criar as estruturas de banco de dados e tabelas. Já a utilização
da SQL como uma linguagem de manipulação de dados - DML nos
permite inserir, excluir, selecionar e atualizar dados nas tabelas do
banco de dados.
CRIAÇÃO DO ESQUEMA
CRIAÇÃO DE TABELAS
Uma vez que tenhamos o esquema de banco de dados criado, poderemos acessá-
lo para armazenar os dados que necessitamos. Os dados seguirão as estruturas
definidas no Modelo de Entidade e Relacionamentos. Cada entidade existente
nesse modelo deve ser criada na forma de tabela, e o comando para a criação dessas
tabelas tem o seguinte formato:
Note que, no local onde informamos o nome da tabela, foi acrescentado também o
nome do esquema na qual a tabela deverá ser criada. Isso ocorre porque o gerenciador
de banco de dados necessita que toda a informação seja completamente qualificada.
1 USE nome_do_esquema;
1 USE Album;
2 CREATE TABLE Banda (
3 idBanda INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
4 nome VARCHAR(200) NOT NULL );
CRIAÇÃO DE RELACIONAMENTOS
Para criar uma tabela que contém relacionamentos vinculados na chave composta,
devemos acrescentar outra cláusula à instrução de criação de tabela, a qual possibilite
a definição de restrições para condicionar a forma como gravamos nossos dados
nas tabelas, de forma a manter a integridade referencial das chaves utilizadas nas
associações estabelecidas entre elas. Essa cláusula tem o seguinte formato:
A cláusula recebe um nome opcional e define qual coluna da tabela atual está
apontando para a tabela destino e sua respectiva coluna. Ainda são oferecidas
as opções para definir como serão tratadas as operações na tabela associada
de remoção e atualização, podendo repassar as atualizações para os registros
associados com a cláusula CASCADE ou não modificar nenhum registro associado
com a cláusula NO ACTION.
MODIFICAÇÃO DA ESTRUTURA
Importante!
Essas declarações permitiram a criação da tabela Estilo e acrescenta-
!
ram a coluna idEstilo, além de estabelecerem a regra para manter a
integridade referencial entre as chaves associativas na tabela Musica.
A associação de muitos para muitos entre a tabela Musica e a tabela Album necessita
da criação de tabela associativa, que manterá as chaves estrangeiras, representando
as músicas que pertencem aos álbuns.
Importante!
A tabela associativa, na maioria vezes, somente contém chaves
!
associativas, mas, dependendo da característica da associação, é
possível que a tabela associativa também contenha atributos que não
sejam chaves.
TRATAMENTO DE DADOS
Agora que temos as tabelas criadas, utilizamos declarações SQL para inserir, consultar,
atualizar e destruir dados. No entanto, é necessário garantir que não existam chaves
primárias duplicadas e, se for o caso, devemos tratar essa duplicidade.
INSERÇÃO DE DADOS
A declaração SQL para inserir dados tem três formatos. Clique nas abas e conheça
cada um deles.
PRIMEIRO FORMATO
SEGUNDO FORMATO
No segundo formato, o nome das colunas é informado em conjunto com os valores
na cláusula SET.
TERCEIRO FORMATO
Na terceira forma, além do nome da tabela e dos nomes das colunas, é informado o
nome da tabela na cláusula TABLE da qual os valores serão importados.
Dica!
Para o controle de duplicidade de chaves primárias que possam
ocorrer durante a operação de inserção de dados, podemos utilizar
a seguinte cláusula:
Essa cláusula permite que sejam informadas quais colunas deverão ser
atualizadas em caso de colisão de chaves primárias, dessa forma, a se-
quência da operação de inserção de dados seguiria sem qualquer falha.
Acesse o material conheça o passo a passo para inserção de dados nas tabelas, a
partir do que já estudamos até aqui.
CONSULTA DE DADOS
PDF
Conheça a sintaxe utilizada para consultar dados cadastrados, bem como as operações que permitem
filtrar e agrupar dados.
Arquivo: PDF01_consultadedados.pdf
Essas duas junções permitem apresentar os dados das colunas “Álbum” e “Música”
constantes no resultado da consulta SQL e demonstram a ausência de músicas
cadastradas para um determinado álbum que é destacado com o resultado NULL.
O resultado dessa junção traz os dados para a coluna “Estilo da Música” no resultado
da consulta SQL.
Note que o registro para a banda “Maduk” apresenta o álbum “Stay Like This”,
mas não contém músicas cadastradas, como indicado pelo NULL nas respectivas
colunas “Música” e “Estilo da Música”. Também o estilo musical para esse álbum
está cadastrado como “Rock”, porém o correto é “Drum’n’bass”.
Confira a seguir:
1 UPDATE Album
2 SET idEstilo = ( SELECT idEstilo FROM Estilo
3 WHERE nome LIKE “%bass” )
4 WHERE nome = “Stay Like This”;
5 Query OK, 0 rows affected (0,01 sec)
6 Rows matched: 1 Changed: 0 Warnings: 0
O próximo passo será incluir as músicas do referido álbum que estão faltando no
banco de dados.
Essa execução pode ser construída com os recursos que a linguagem SQL nos
oferece, de forma que possamos inserir manualmente as chaves associativas com a
utilização de variáveis que são criadas, conforme ilustrado a seguir.
• Para cada registro, executaremos duas instruções SQL, conforme você pode
verificar nesta imagem.
Importante!
Note que a atualização do estilo no registro do álbum da banda
!
Maduk passou para “Drum’n’bass” e suas músicas foram cadastradas
com sucesso.
Vamos remover uma música e, neste caso, também temos que remover o registro
associativo da tabela Musicas_do_Album. A declaração fica como podemos conferir
a seguir:
Importante!
As declarações SQL têm que ser executadas nesta sequência para ter
sucesso. A primeira declaração remove o registro associativo entre
!
a tabela Musicas_do_Album e a tabela Musica. Por fim, a segunda
declaração SQL remove o registro da música.
Caso desejássemos remover uma tabela, deveríamos analisar todas
as regras associativas existentes entre a tabela e outras na forma de
CONSTRAINT e, na existência dessas regras, a primeira ação a ser
executada é a exclusão da regra existente na tabela associada, seguida
da coluna correspondente na mesma tabela. Somente após o sucesso
dessa ação, será possível remover a tabela objeto da ação.
Para exemplificar, vamos remover a tabela Estilo. Ela tem relações de integridade
referencial entre as tabelas Musica e Album. Na sequência, temos as instruções para
a remoção dessas regras e da coluna correspondente:
Agora que a tabela Estilo não tem qualquer regra de integridade referencial com
as tabelas Musica e Album, e essas tabelas também não têm o atributo associativo
idEstilo em suas estruturas, podemos executar a instrução SQL que permite remover
a tabela e todos os seus registros.
Saiba mais
O comando DROP TABLE permite a remoção de todos os dados e da
tabela de uma única vez. Esse comando falhará se houver qualquer
+
regra de integridade referencial existente entre duas tabelas no banco
de dados, retornando uma mensagem de erro.
SEGURANÇA DA INFORMAÇÃO
Segurança da informação, também conhecida como infosec, segundo a definição
do Computer Security Resource Center1 é:
Na tradução literal:
Você sabia?
Diferença entre dados e informações. ?
Dados são os recursos isolados que não possuem valor relevante para
uma tomada decisão ou embasamento de conclusões. Por exemplo, em
um determinado mês, 100 pessoas visitaram um site; este é um dado. Já
a Informação é a organização dos dados para ter compreensão sobre um
determinado contexto. Os dados, quando organizados e processados,
tornam-se informações úteis. Por exemplo, em um determinado mês,
100 pessoas visitaram um site e, no mês seguinte, após a divulgação do
site em redes sociais, esse número aumentou para 160 pessoas. Podemos
concluir que houve um aumento de 60% no número de acessos.
PILARES
CONFIDENCIALIDADE
INTEGRIDADE
DISPONIBILIDADE
Saiba mais
A norma ISO 27001:2013 estabelece os requisitos para implementar,
+
manter e melhorar, continuamente, um sistema de gestão de segurança
da informação. Acesse em: https://www.27001.pt/index.html
Em outras palavras:
Dica!
O SENAI-SP oferece gratuitamente o curso “Privacidade e proteção de
dados (LGPD)”. Para se inscrever, acesse o link: https://online.sp.senai.
br/6884/privacidade-e-protecao-de-dados-lgpd
POLÍTICAS DE SEGURANÇA
AUDITORIAS
Trata-se de uma avaliação feita para analisar e identificar pontos em que pode haver
violação de segurança, de acordo com um conjunto de critérios preestabelecidos.
Exemplo: as senhas podem ser descobertas facilmente? Há logs (registros) de quem
acessa as informações?
CRIPTOGRAFIA
Do grego kriptos (oculto) e grafo (escrita), a criptografia codifica uma informação, dei-
xando-a ilegível ou dificultando a leitura por pessoas não autorizadas. Uma chave crip-
tográfica é aquela que codifica um texto, que só o emissor e o receptor podem decifrar,
conforme mostra o esquema abaixo. Dessa maneira, consegue-se manter os três atribu-
tos básicos da segurança da informação (confiabilidade, integridade e disponibilidade).
PDF
Entenda como uma chave assimétrica é gerada.
Arquivo: 01_chave_assimetrica.pdf
+
Saiba mais
Codificar funciona como traduzir uma mensagem de um idioma para
outro. Quem conhece o segundo idioma poderá entender a mensagem
final. Criptografar, por sua vez, é o processo de transformação da
mensagem em um código que somente poderá ser lido depois de
descriptografado com a chave correta. Esse processo é feito por meio
de algoritmos.
NA PRÁTICA
HIERARQUIA DE PERFIS
Define a estrutura de perfis que terão acesso ao banco de dados. Perfis mais baixos,
por exemplo, devem ter acesso apenas à consulta, e os perfis mais altos devem ter
acesso total, inclusive ao monitoramento de logs e alterações de perfis e permissões.
NÍVEIS DE PERMISSÃO
Define as ações que cada perfil poderá ter. Um cliente da livraria não deve ter
permissão para alterar o estoque da livraria, apenas vendedores e gerentes. Um
usuário com um perfil de acesso incorreto pode ter acesso a dados protegidos
LOGS DE ACESSO
Grava todas as ações do usuário. No caso de um erro, como uma tabela ser deletada
sem querer, podemos encontrar o usuário que cometeu a ação, não para puni-
lo, mas para identificar que o usuário está com o perfil errado ou para ajustar as
permissões daquele perfil.
Como exemplo, podemos criar um usuário com senha e restringir sua permissão
de acesso para apenas consulta (ou leitura). Então, ao tentar realizar comandos
de inserção, atualização, o comando não será considerado e nenhuma ação será
efetuada. Isso garante a restrição a uma determinada lista de pessoas sob um
determinado contexto de banco de dados.
PDF
Para ver um exemplo de como fazer uma permissão, acesse:
Arquivo: 11_permissao.pdf
AUDITORIA
PDF
Para ver um exemplo de como criar uma auditoria, acesse:
Arquivo: 12_auditoria.pdf
Confira as instruções para criação de perfis clicando sobre cada caixa a seguir:
Uma vez que tenhamos o perfil, podemos criar a conta de usuário para vincular a
esse perfil. A sintaxe para a criação de conta de acesso está apresentada abaixo:
Com este comando, podemos criar a conta do usuário e adicionar ao perfil que foi
criado no comando anterior:
O usuário que acessar com a conta “analista” somente terá acesso à instância álbum
e poderá executar apenas os comandos SQL de manipulação de dados. Qualquer
comando para alterar uma estrutura de dados nesta instância retornará uma
mensagem de erro.
NESTE DESAFIO...
BANCO DE DADOS EM APLICATIVOS MOBILE COM JAVA |
DESAFIO 2
PARA CONCLUIR...
PARABÉNS, VOCÊ CONCLUIU A PRIMEIRA ETAPA DA UNIDADE
CURRICULAR DE BANCO DE DADOS EM APLICATIVOS MOBILE
COM JAVA!
REFERÊNCIAS
AGUIAR, Camila Zacché; FALBO, Ricardo de Almeida; SOUZA, Vítor E. Silva. Ontological
Representation of Relational Databases. CEUR, v. 2228, [s. d.]. Disponível em: http://
ceur-ws.org/Vol-2228/paper9.pdf. Acesso em: 15 set. 2021.
BROOKS, Chad. What is SQL? Business News Daily, 2014. Disponível em: https://
www.businessnewsdaily.com/5804-what-is-sql.html. Acesso em: 07 set. 2021.
CODD, Edgar F. A Relational Model of Data for Large Shared Data Banks.
Communications of the ACM, v. 13, n. 6, jun. 1970, p. 378-387. Disponível em:
https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf . Acesso em: 15 set. 2021.
ETL – O que é e qual sua importância. SAS Institute, Inc., [s. d.]. Disponível em: https://www.
sas.com/pt_br/insights/data-management/o-que-e-etl.html. Acesso em: 15 set. 2021.
IBM Cloud Education. Relational Databases. IBM, 2019. Disponível em: https://www.
ibm.com/cloud/learn/relational-databases . Acesso em: 15 set. 2021.
MY SQL 8.0 Reference Manual: Including MySQL NDB Cluster 8.0. MySQL, [s. d.].
Disponivel em: https://dev.mysql.com/doc/refman/8.0/en/. Acesso em: 07 set. 2021.
Créditos
CONFEDERAÇÃO NACIONAL DA INDÚSTRIA SENAI - DEPARTAMENTO REGIONAL DE SÃO
-CNI PAULO
Neide Araujo
SENAI – DEPARTAMENTO NACIONAL Design Educacional
UNIDADE DE EDUCAÇÃO PROFISSIONAL E
TECNOLÓGICA – UNIEP Caio Marques Rodrigues
Diagramação
Felipe Esteves Morgado
Gerente Executivo Cleriston Ribeiro de Azevedo
Fabiano José de Moura
Luiz Eduardo Leão Juliana Rumi Fujishima
Gerente de Tecnologias Educacionais Ilustrações
Integridade de chaves
Olá! Seja bem-vindo e bem-vinda ao podcast sobre integridade de
chaves.
SENAI 1
Banco de Dados em Aplicativos Mobile
Chaves
O conceito de chave em banco de dados é importante para
implementar restrições e garantir a integridade referencial dos dados.
A chave é um atributo ou grupo de atributos cujos valores podem ser
usados para identificar exclusivamente uma entidade individual em um
conjunto de entidades.
As chaves podem ser primarias ou estrangeiras:
• Uma chave primária é uma coluna ou um conjunto de colunas em
uma tabela cujos valores identificam exclusivamente uma linha na
tabela. Um banco de dados relacional é projetado para impor a
exclusividade das chaves primárias, permitindo apenas uma linha com
um determinado valor de chave primária em uma tabela.
• Uma chave estrangeira é uma coluna ou um conjunto de colunas
em uma tabela cujos valores correspondem aos valores da chave
primária em outra tabela. Para adicionar uma linha com um
determinado valor de chave estrangeira, deve haver uma linha na
tabela relacionada com o mesmo valor de chave primária.
SENAI 2
Banco de Dados em Aplicativos Mobile
SENAI 3
Banco de Dados em Aplicativos Mobile
Álgebra relacional
Outro conceito importante em um banco de dados que segue o
modelo relacional, que falamos no inicio, é o de álgebra relacional.
Consiste em um conjunto de operações utilizadas para manipular
relações.
Uma consulta em um banco de dados que segue o modelo relacional é
realizada através da aplicação de uma serie de operações da álgebra
relacional que são executadas e retornam os dados na forma de uma
tabela.
Por exemplo, uma consulta pode selecionar alguns dados de uma
relação, as músicas do estilo “Dance” e, adicionalmente, combinar está
conjunto com dados de outra relação, as músicas do estilo “Dance” e
suas respectivas bandas.
As operações da álgebra relacional são as seguintes:
SENAI 4
Banco de Dados em Aplicativos Mobile
Álgebra relacional
SENAI 5
Banco de Dados com Java
Instalação e configuração
SENAI 1
Banco de Dados com Java
SENAI 2
Banco de Dados com Java
SENAI 3
Banco de Dados com Java
SENAI 4
Banco de Dados com Java
SENAI 5
Banco de Dados com Java
SENAI 6
Banco de Dados com Java
SENAI 7
Banco de Dados com Java
SENAI 8
Banco de Dados com Java
SENAI 9
Banco de Dados com Java
SENAI 10
Banco de Dados com Java
SENAI 11
Banco de Dados com Java
SENAI 12
Banco de Dados com Java
SENAI 13
Banco de Dados com Java
SENAI 14
Banco de Dados com Java
16. Nesta etapa, iremos adicionar o MySQL Server para iniciar quando
o sistema operacional for iniciado (A) e será configurado como um
serviço do Windows (B).
SENAI 15
Banco de Dados com Java
SENAI 16
Banco de Dados com Java
SENAI 17
Banco de Dados com Java
SENAI 18
Banco de Dados com Java
SENAI 19
Banco de Dados com Java
SENAI 20
Banco de Dados com Java
SENAI 21
Banco de Dados com Java
SENAI 22
Banco de Dados com Java
SENAI 23
Banco de Dados com Java
SENAI 24
Banco de Dados com Java
SENAI 25
Banco de Dados com Java
SENAI 26
Banco de Dados com Java
SENAI 27
Banco de Dados com Java
SENAI 28
Banco de Dados Mobile
Consulta de Dados
Utilizando a declaração SQL
A declaração SQL que nos permite extrair informações a partir da base de dados.
Em muitos casos, ao analisar os dados históricos, podemos identificar as
tendências que dão auxílio à tomada de decisão.
Confira a seguir a sintaxe da declaração SQL que utilizamos para consultar os
dados cadastrados:
SENAI 1
Banco de Dados Mobile
Consulta de Dados
Para listar o que foi cadastrado na tabela Banda, utilizamos a declaração SQL
indicada a seguir.
Podemos analisar o resultado da execução da declaração SQL logo abaixo de sua
declaração, nela são apresentadas todas as colunas da tabela Banda e todos os
seus conteúdos.
Note que, logo após a instrução SELECT, há um * (asterisco), esse asterisco, na
declaração SQL, indica que todas as colunas deverão ser apresentadas como
resultado da consulta.
SENAI 2
Banco de Dados Mobile
Se ao invés de listar todas as colunas, desejássemos listar apenas a coluna nome,
a sintaxe ficaria conforme a próxima imagem. Agora o resultado contém somente
a coluna que solicitamos na declaração SQL. A última linha representa o total de
linhas consultadas durante a execução da declaração SQL e o tempo gasto, em
segundos.
[WHERE condição]
SENAI 3
Banco de Dados Mobile
Operações
SENAI 4
Banco de Dados Mobile
Filtragem de dados
A filtragem de dados tem o objetivo de selecionar as informações que desejamos
como resultado por meio das cláusulas que indicamos em nossas consultas SQL.
SENAI 5
Banco de Dados Mobile
+---------+-------+
| idBanda | nome |
+---------+-------+
| 2 | Trapt |
| 4 | Maduk |
+---------+-------+
2 rows in set (0,00 sec)
SENAI 6
Banco de Dados Mobile
Algumas vezes necessitamos pesquisar registros que tenham uma parte do texto
armazenada em um determinado atributo. Confira um exemplo a seguir.
Aqui a consulta foi para procurar em todos os registros de atributos que tenham
armazenado um texto que inicia com a letra T. O símbolo % demarca o ponto no
texto em que o conteúdo é indeterminado, assim, se utilizarmos a expressão
%de% estamos procurando por textos que contenham “de” em qualquer um de
seus trechos. Acompanhe no exemplo:
SENAI 7
Banco de Dados Mobile
Caso necessitemos aplicar dois critérios de pesquisa que são obrigatórios estar
presentes no resultado de uma consulta, utilizamos a seguinte consulta SQL:
SENAI 8
Banco de Dados Mobile
Neste primeiro exemplo, foi passada a lista de nomes das bandas Trapt,
AudioSketch e Alix Perez para a consulta SQL através do operador IN, que
comparou cada valor contido no atributo nome com os valores da lista.
O registro foi selecionado toda vez em que o valor contido no atributo combinou
com qualquer elemento da lista.
SENAI 9
Banco de Dados Mobile
SENAI 10
Banco de Dados Mobile
SENAI 11
Banco de Dados Mobile
SENAI 12
Banco de Dados Mobile
O resultado foi ordenado com base nos valores contidos na coluna “nome”, em
ordem crescente.
Caso necessitemos que o resultado seja ordenado na ordem decrescente,
deveremos acrescentar o operador DESC.
Esse operador informa ao gerenciador de banco de dados que utilize a
ordenação decrescente no conjunto de resultado.
Assim, ao modificarmos a consulta SQL anterior, obtemos o resultado observado
a seguir.
Observe que o resultado foi apresentado em ordem decrescente.
SENAI 13
Banco de Dados Mobile
Agrupamento de dados
Algumas vezes necessitamos contar a quantidade de informações cadastradas
para um determinado tipo de dado no nosso banco de dados. Isso é possível
utilizando a função COUNT e informando sobre qual atributo da tabela
desejamos a contabilização.
Sempre que desejamos contar quantos registros existem em uma tabela,
utilizamos a consulta SQL indicada a seguir:
Importante
SENAI 14
Banco de Dados Mobile
SENAI 15
Banco de Dados Mobile
SENAI 16
Banco de Dados Mobile
SENAI 17
Banco de Dados Mobile
É possível notar que, ao construir uma consulta SQL com junção de uma ou mais
tabelas, passa a ser necessário qualificar cada atributo referenciado, seja na
definição das colunas para o resultado, seja nas expressões passadas como
argumentos nas funções ou cláusulas SQL utilizadas.
O qualificador é o nome da tabela seguido de um ponto “.”, que serve para
identificar cada parte, podendo ser o nome da tabela ou o nome do atributo.
Outro fato que podemos notar é que o resultado SQL fica mais informativo
quando o nome da banda aparece à frente da quantidade de músicas.
Se desejarmos ordenar o nome das bandas, a consulta SQL ficará assim:
SENAI 18
Banco de Dados Mobile
SENAI 19
Banco de Dados Mobile
SENAI 20
Banco de Dados Mobile
Dica!
Como a associação entre álbuns e músicas é uma relação
muitos para muitos, temos uma tabela associativa para a
manutenção desses relacionamentos. Dessa forma, para
acessarmos as músicas a partir de um álbum, necessitamos
utilizar duas junções, uma entre a tabela Álbum e a tabela
Musicas_do_album e outra da tabela Musicas_do_Album e
a tabela Música.
Saiba mais
SENAI 21
Banco de Dados Mobile
Por fim, a utilização do LEFT JOIN causou o aparecimento de NULL para o álbum
”Stay Like This” por não ter músicas cadastradas na tabela Música e,
consequentemente, não existir o registro de relacionamento na tabela
associativa Musicas_do_Album.
Ao utilizar o INNER JOIN ou somente JOIN nesta consulta SQL, somente
aparecerão no resultado final os registros constantes nos relacionamentos em
ambas as tabelas.
Confira a seguir como fica a consulta SQL e seu resultado.
Note que neste exemplo não foi apresentado qualquer valor NULL no resultado.
SENAI 22
Banco de Dados Mobile
Para apresentar o efeito do RIGHT JOIN, vamos construir uma consulta SQL que
inicie a relação pela tabela Música, ao invés de, tal como nos exemplos
anteriores, iniciar a consulta pela tabela Álbum.
Isso permite colocarmos a tabela Álbum ao lado direito da relação, e como
existem álbuns sem músicas cadastradas, poderemos comprovar o correto
funcionamento da consulta SQL. Confira a seguir:
SENAI 23
Banco de Dados Mobile
1. Esta consulta SQL, pesquisa por bandas musicais cujo estilo seja “Rock”.
SENAI 24
Banco de Dados Mobile
2. Esta consulta SQL pesquisa por bandas musicais que tenha seu nome iniciado
pela letra “T” e cujo estilo musical seja diferente de “Rock”.
SENAI 25
Banco de Dados Mobile
Podemos notar que essas duas consultas SQL retornam o mesmo número de
colunas e têm a característica de serem unidas pela cláusula UNION.
Na sequência, temos o exemplo de como fica a consulta SQL após a união:
SENAI 26
Codificação Back-End
Chave assimétrica
Fonte: SENAI-SP
Para criar uma permissão, vamos criar um login e uma senha para um
aluno, que precisa de acesso ao banco de dados da livraria para
encontrar um livro de estudo. Devemos garantir, porém, que ele só
possa consultar o banco de dados, sem modificá-lo.
SENAI 1
Banco de dados
SENAI 2
Banco de dados
SENAI 3
Banco de dados
SENAI 4
Banco de dados
Auditoria
SENAI 1
Banco de dados
SENAI 2
Banco de dados
SENAI 3
Banco de dados
SENAI 4
Banco de dados
SENAI 5
Banco de dados
SENAI 6
Banco de dados
SENAI 7
Banco de dados
SENAI 8
Banco de dados
SENAI 9
Banco de dados
SENAI 10
Banco de dados
11. Você pode visualizar que após o select ser realizado na tabela de
autores, não auditado, o log não será atualizado.
Saiba mais
Para saber mais sobre auditorias, acesse
https://docs.microsoft.com/pt-br/sql/relational-
databases/security/auditing/sql-server-audit-database-
engine?view=sql-server-ver15.
SENAI 11
BANCO DE DADOS EM
APLICATIVOS MOBILE
JAVA - SA2
Banco de Dados em Aplicativos Mobile Java - SA2
PARA COMEÇAR
Este material aborda conceitos relacionados ao Banco de Dados em aplicativos
Mobile Java.
SITUAÇÃO-PROBLEMA
Você modelou e criou o projeto de banco de dados para o aplicativo de compras
de produtos alimentícios da empresa Coma bem, aplicando procedimentos de
normalização e padronização, além de regras de segurança. Agora, chegou a hora
de iniciar a construção da aplicação das rotinas para o acesso ao banco de dados.
Como responsável por este desenvolvimento, você deverá solucionar dois desafios.
DESAFIO 1
Modelar as classes de objetos para a aplicação de compras de produtos alimentícios,
utilizando a linguagem Java.
DESAFIO 2
Implementar as rotinas de conectividade ao banco de dados, além de documentar
o código.
DESAFIO 1
Nesta etapa, você deverá resolver o desafio 1:
• compilada1;
• interpretada2;
• portável3;
• com tipagem forte4;
• oferece suporte à programação concorrente5 e
de sistemas distribuídos6.
HISTÓRICO
Desenvolvida por James Gosling, a linguagem de programação Java teve como base
a linguagem C++, que, por sua vez, evoluiu da C.
6 Conjunto de dispositivos autônomos, unidos por uma rede de comunicação, que trabalham juntos para
realizar uma tarefa. Um sistema distribuído é percebido pelo usuário como um único dispositivo.
• 1992: O Java foi batizado de Oak, porém já existia uma outra linguagem
de programação com o mesmo nome. A equipe da Sun, empresa detentora
do Java na época, renomeou o Oak para Java em homenagem ao café que
costumavam tomar.
• 1995: O Netscape, navegador mais utilizado na época, implementou a
tecnologia Java e lançou uma nova versão com suporte à execução de pequenos
aplicativos escritos em Java, denominados applets. Nesse mesmo ano, outros
navegadores também disponibilizaram versões com suporte ao Java.
• 1996: Surpreendentemente, a Sun disponibilizou, sem custos, um kit de
ferramentas para desenvolvimento de software, chamado JDK (Java Developer’s
Kit). Disponível para os sistemas operacionais Solaris, Windows 95 e Windows NT
e, em seguida, para Linux, OS2 e OSX (Macintosh), o kit alavancou o crescimento
e a utilização do Java entre as empresas desenvolvedoras de software.
• 1997: Surgiu o SDK 1.1, que possuía foco em aplicações distribuídas e
desenvolvimento de interface gráfica.
• 1999: O JDK 1.2 foi lançado com outras inovações importantes. Depois
disso, a empresa continuou liberando gratuitamente novas versões de sua
tecnologia e retomou os investimentos no projeto original de programação para
pequenos dispositivos eletrônicos.
PLATAFORMA JAVA
Como já estudado, o Java é uma linguagem de programação e também uma plataforma
de desenvolvimento, com conjuntos diferentes de ferramentas e utilitários.
será necessário apenas instalar o JRE. Se você vai desenvolver um programa, então
será necessário instalar o JDK.
DICA
Os sistemas operacionais Windows, Linux e Solaris já contêm um
ambiente de execução para aplicativos Java. Portanto, antes de realizar
a instalação do JRE, verifique se isso é realmente necessário.
TÉCNICAS DE PROGRAMAÇÃO
Nesse tópico, abordaremos alguns conceitos
importantes comuns a todas as linguagens de
programação, também aplicadas à linguagem
Java, como variáveis, dados e seus tipos,
além de algumas técnicas de programação,
como operadores e controle de fluxo.
VARIÁVEIS
O principal objetivo de uma variável é armazenar um tipo de dado para que possa
ser acessado posteriormente.
tipoDeDado nomeVariavel;
TIPOS DE DADOS
Há diversas maneiras de classificar as variáveis. Nesse tópico, vamos conhecer um
pouco melhor os tipos primitivos.
Caso o valor do tipo primitivo não seja declarado, há um valor padrão inicial para
cada um deles, como mostra a tabela a seguir.
short 0
int 0
long OL
7 Palavras que são usadas exclusivamente para tipificar dados, não podendo ser usadas para nomenclatura
de variáveis ou funções.
8 O “S” de String é maiúsculo, pois uma String representa uma classe de caracteres.
double 0.0d
char ‘\u0000’
boolean false
Fonte: https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html
A seguir, vamos conhecer um pouco mais sobre dois subtipos numéricos dos tipos
primitivos: os inteiros (byte, short, int e long) e os de ponto flutuante (float e double).
INTEIROS
9 Ferramenta de desenvolvimento.
PONTO FLUTUANTE
CONTROLE DE FLUXO
Para controlar e alterar o fluxo da sua aplicação baseada em uma condição ou um
conjunto delas, você pode usar técnicas como a estrutura de decisão e de repetição,
com o auxílio de operadores.
PDF
Para conhecer as estruturas de decisão, repetição e os operadores, acesse o material.
Arquivo: PDF01_OperadoresDecisaoRepeticao.pdf
FUNÇÕES E MÉTODOS
Com o aumento da complexidade dos softwares em desenvolvimento, surge a
necessidade de simplificar sua construção por meio de pequenos módulos. Métodos
(funções ou procedimentos1⁰) ajudam a modularizar sua aplicação, encapsulando
as tarefas sob uma estrutura única.
10 Funções possuem retorno; procedimentos, não. Em POO, ambos são chamados de métodos (com ou
sem retorno) e representam o comportamento de uma classe.
Fonte: Pixabay
9. }
10.
11. public static void main(String[] args) {
12. System.out.println(calcSomaComRet());
13. }
14. }
No primeiro exemplo, o void significa que o método não tem retorno, ou seja, só
realiza o que foi pedido (no exemplo, soma os números passados como parâmetros).
PARÂMETROS
Como já dito, as funções podem receber parâmetros de entrada, ou seja, a entrada de
dados para a execução da instrução. A função poderá ou não retornar um resultado
a partir do valor passado. Confira no exemplo a seguir.
1. package sp.senai;
2.
3. public class Main {
4.
5. public static int calcularSomaComRetornoEParametro(int
primeiroNumero, int segundoNumero) {
6. return primeiroNumero + segundoNumero;
7. }
8.
9. public static void main(String[] args) {
10. System.out.println(calcularSomaComRetornoEParametro(10,
20));
11. }
12. }
CLASSES
A POO (Programação Orientada a Objetos) surgiu como uma representação do
mundo real para o desenvolvimento de software e se orienta em classes e objetos. A
linguagem Java segue o paradigma de Orientação a Objetos e, portanto, é baseada
em classes e objetos.
Uma classe pode ser definida como um modelo ou a forma para a criação de um
objeto. Uma única classe pode dar origem a vários objetos. Para construir os objetos,
definimos quais serão as características (atributos) e seus métodos. Um método é
uma função e faz parte de uma classe, representando seu comportamento.
IMPORTANTE!
A maneira para obter maior produtividade em Programação Orientada
a Objetos é tornar cada objeto responsável por realizar um grupo
!
de tarefas, que podem estar relacionadas. Na situação de um objeto
que tenha dependência de uma tarefa/atividade pela qual não seja
o responsável, deve-se acessar o objeto responsável por essa tarefa/
atividade por meio de troca de mensagens para solucionar esse
problema complexo.
BIBLIOTECAS E APIS
Todo código escrito na linguagem Java está dentro de uma classe. Como o Java é
orientado a objetos, então o projeto é estruturado em partes reutilizáveis de código.
O reaproveitamento de código é o conceito base das bibliotecas e APIs.
FUNÇÕES MATEMÁTICAS
Em Java, utilizamos a biblioteca math para trabalhar com cálculos matemáticos. Essa
biblioteca é muito útil em situações nas quais precisamos realizar alguns cálculos de
funções específicas. Veja alguns exemplos no código a seguir.
1. package sp.senai;
2. import static java.lang.Math.*;
3.
4. public class FuncoesMatematicas {
5.
6. public static void main(String[] args) {
7. System.out.println(“A raiz quadrada de 16 é: “ + sqrt(16));
8. // a função sqrt calcula a raiz quadrada
9. System.out.println(“O número 3 elevado à
potencia 2 é: “ + pow(3,2));\
10. /* a função pow calcula potências. Note que é necessário
passar dois parâmetros: o primeiro é a base e o segundo, o expoente. */
11. System.out.println(“O valor de PI é: “ + PI);
12. // a função PI é usada para achar o valor de PI
13. }
14. }
Veja a compilação do código a seguir:
RESULTADO
SAIBA MAIS...
Para saber mais sobre a classe Math, clique no link a seguir:
+
https://docs.oracle.com/javase/8/docs/api/java/lang/Math.html
MANIPULAÇÃO DE STRINGS
Podemos definir uma String como uma sequência de caracteres que compõe um
texto. No Java, uma String nada mais é do que uma classe que possui diversos
métodos para manipulação desses caracteres. Vamos demonstrar alguns métodos
muito utilizados dentro da classe String.
TRIM
Utilizamos o método trim() para remover os espaços no início ou final de uma String:
1. package sp.senai;
2.
3. public class ManipulacaoStrings2 {
4. public static void main(String[] args) {
5. String texto = “ Esse texto irá aparecer sem espaços no
início ou no fi m “;
6. System.out.println(texto.trim());
7. }
8. }
LENGTH
Utilizamos o método Length() para contar a quantidade de caracteres existentes
em uma String. Esse método é muito utilizado principalmente em comandos de
decisão para realizar validações.
1. package sp.senai;
2.
3. public class ManipulacaoStrings3 {
4. public static void main(String[] args) {
5. String texto = “Senai”;
6. System.out.println(texto.length());
7. }
8. }
toUpperCase() e toLowerCase()
Utilizamos o método toUpperCase() para deixar todos os caracteres de uma String
em maiúsculas. Podemos usar também o método toLowerCase() para deixar todos
os caracteres de uma String em minúsculas.
1. package sp.senai;
2.
3. import java.util.Locale;
4.
5. public class ManipulacaoStrings4 {
6. public static void main(String[] args) {
7. String texto = “Joao Carlos”;
8. System.out.println(texto.toUpperCase());
9. System.out.println(texto.toLowerCase());
10. }
11. }
SAIBA MAIS...
Apresentamos os principais métodos utilizados por meio de uma String.
+
Essa classe, no entanto, possui uma enormidade de funcionalidades que
https://docs-oracle-com.translate.goog/javase/7/docs/api/java/lang/
String.html?_x_tr_sl=en&_x_tr_tl=pt&_x_tr_hl=pt-BR&_x_tr_pto=nui,sc
RESULTADO
A classe date possui diversos métodos para trabalhar com datas. Veja o exemplo a seguir.
1. package sp.senai;
2. import java.util.Date;
3.
4. public class Datas2 {
5. public static void main(String[] args) {
6. Date data = new Date();
7. System.out.println(data.getDay()); // pega o dia
8. System.out.println(data.getMonth()); // pega o mês
9. System.out.println(data.getYear()); // pega o ano
10. System.out.println(data.getHours()); // pega a hora
11. System.out.println(data.getMinutes()); // pega os minutos
12. System.out.println(data.getSeconds()); // pega os segundos
13. }
14. }
RESULTADO
• 5 (dia)
• 9 (mês)
• 121 (ano)
• 9 (horas)
• 26 (minutos)
• 57 (segundos)
Obs.: O método do ano é usado para retornar o valor, subtraindo 1900 do objeto da
data atual.
FORMATAÇÃO DE DADOS
Os valores provenientes de um campo na tela (ou seja, digitados pelo usuário),
independentemente de serem um número ou um texto, normalmente são
armazenados em uma variável do tipo String – portanto, um texto. No caso de
valores numéricos, é necessário fazer a conversão para realizar operações ou mesmo
armazená-los em um banco de dados no formato correto.
COLEÇÕES
Podemos definir coleção como uma estrutura de dados que permite que seja
armazenado um grupo de objetos. Basicamente, uma coleção também pode
ser considerada um objeto.
Os métodos que podem ser realizados por meio das coleções servem para inserir
novos elementos, remover elementos existentes, acessar elementos e também
realizar a pesquisa de elementos.
Vamos agora fazer um passo a passo de um projeto para criação de uma coleção de
objetos. Siga adiante para acompanhar os tutoriais.
FERRAMENTAS
Para aplicar todos esses conceitos na prática, vamos utilizar as ferramentas:
• IntelliJ: IDE11 em Java para desenvolvimento de softwares. Vamos usá-lo para
implementação das classes.
• Git/GitHub: Programa de versionamento12 e plataforma de repositório13.
Acesse o material e assista o vídeo para saber mais sobre a instalação do IntelliJ.
PDF
Para conhecer um pouco mais sobre GiT e GitHub, acesse o material.
Arquivo: PDF02_git.pdf
NA PRÁTICA
Acesse o material e assista o vídeo e acompanhe o tutorial de como iniciar um projeto
no IntelliJ.
PDF
Confira a versão pdf do conteúdo do vídeo.
Arquivo: VID01_CriandoProjIntelliJ.pdf
NESTE DESAFIO...
NO PRÓXIMO DESAFIO...
DESAFIO 2
Nesta etapa, você deverá resolver o desafio 2:
• Criação de classes;
• Heranças;
• Visibilidade;
• Composição;
• Interface;
• Polimorfismo;
• Exceções.
• Conexão com o banco de dados.
INTRODUÇÃO
Iniciaremos esse conteúdo com alguns conceitos importantes para a criação de
classes, como visibilidade e os métodos get, set e constructor.
Fonte: Depositphotos
CRIAÇÃO DE CLASSES
Para criar uma classe na linguagem de programação Java, utiliza-se a palavra class,
seguida do nome desejado para a classe criada.
1. <modifi cador de acesso> class NomeClasse {
2. /* aqui dentro da classe criada, vão os atributos, métodos e
3. construtores */
4. }
IMPORTANTE!
Uma regra simples na identificação de classes é procurar por
substantivos na análise de um problema. Já os métodos, por outro lado,
!
correspondem a verbos e ações.
• Item
• Produto
• Endereço
• Pagamento
Esses nomes podem ajudar na criação de classes. Para os métodos das classes, você
deve identificar os verbos, pois eles representam ação: aplicar desconto, adicionar
em estoque etc.
PENSE NISSO
Acesse o material e veja o vídeo para aprender a criar e instanciar uma classe no IntelliJ
com Java.
PDF
Leia a versão pdf do conteúdo do vídeo.
Arquivo: VID01_CriandoClasses.pdf
Agora, vamos abordar como controlar o acesso às classes e seus atributos e métodos,
usando o conceito de visibilidade. Siga em frente e descubra como.
VISIBILIDADE
Na linguagem e programação Java, a visibilidade, ou grau de acesso de um atributo
ou método, está diretamente ligada ao conceito de pacotes. Um pacote ou package
significa pasta ou diretório local em que a classe foi construída.
Note que, no exemplo a seguir, a pasta (ou package) sp.senai contém todos os
arquivos de classes.
Para uma melhor organização, estruturamos o projeto em pacotes. Para utilizar uma
classe de um pacote, você pode importá-la.
1. import sp.senai.modelos.Conta;
MODIFICADORES DE ACESSO
Você pode controlar o acesso às variáveis e aos métodos de uma classe utilizando
modificadores de acesso (ou de visibilidade): public, private e protected.
1. Public: Público ou public refere-se ao acesso livre por qualquer classe; ou
seja, o acesso é irrestrito.
2. Protected: Protegido ou protected pode ser acessado apenas pela própria
classe ou pelas suas subclasses, ou seja, o acesso é limitado à classe ou a tipos que
derivem da mesma classe.
3. Private: Privado ou private apenas os métodos da própria classe podem
manipular o atributo, ou seja, o acesso é limitado à própria classe.
O exemplo a seguir mostra a utilização dos métodos depositar e sacar, usando
modificadores de acesso. Um atributo private é visível apenas dentro da própria
classe; um atributo public é visível dentro de todo o projeto; um atributo protected é
visível apenas dentro do pacote no qual a classe foi criada.
7. System.out.println(contaDoWilson.getSaldo());
8. contaDoWilson.sacar(50);
9. System.out.println(contaDoWilson.getSaldo());
10. }
11. }
MÉTODOS GET E SET
Uma classe normalmente consiste em um ou mais métodos que manipulam os
atributos dos objetos e estão declarados dentro das classes. Os atributos funcionam
da mesma maneira que variáveis e são declarados na classe. Normalmente, são
conhecidos como propriedades de uma classe. Para alterar, acessar ou modificar
os atributos do objeto, criamos métodos para realizar essas ações, também
conhecidos como métodos get e set.
11.
12. // metodo para recuperar o nome do curso
13. public String getNomeCurso() {
14. return nomeCurso; // retorno do valor
15. } // fim do metodo
16.
17. }
CONSTRUTORES
Toda classe possui um método que tem o mesmo nome da classe, chamado
construtor. O método construtor é invocado quando se realiza a instanciação
de uma classe, criando assim um objeto. Ao criar um objeto de uma classe na qual
não foi implementado um método construtor, o próprio Java cria um construtor
vazio em tempo de execução.
Acesse o material e veja o vídeo para aprender a usar os métodos get, set e construtor
no IntelliJ.
PDF
Acesse o material para baixar a versão pdf do conteúdo do vídeo.
Arquivo: VID02_GetSetConstrutor.pdf
HERANÇA
Na programação orientada a objetos, as classes normalmente são formadas a partir
de outras classes.
Vamos supor que você precise definir, em sua empresa, um cadastro dos veículos que
ela tem em seu inventário (classe Veículo), como motos ou carros. Essas subclasses
(Moto, Carro) poderão herdar características e comportamentos de veículo e
adicionar funcionalidades específicas de cada uma.
Confira a seguir a classe Veículo seguida da classe Carro e seus seu respectivos códigos.
CLASSE VEÍCULO
1. package sp.senai;
2. public class Veiculo {
3. private int Ano;
4. private String modelo;
5. public int getAno() {
6. return Ano;
7. }
CLASSE CARRO
1. package sp.senai;
2. public class Carro extends Veiculo {
3. private int quantidadePortas;
4. public int getQuantidadePortas() {
5. return quantidadePortas;
6. }
7. public void setQuantidadePortas(int quantidadePortas) {
8. this.quantidadePortas = quantidadePortas;
9. }
10. }
A palavra-chave extends na primeira linha da classe Carro indica que a classe referida
está herdando as propriedades da classe base existente.
A classe base também pode ser chamada de superclasse. A classe que herda é
denominada classe derivada ou subclasse. Os termos superclasse e subclasse são
os mais usados habitualmente por programadores Java.
Não é possível criar instâncias da classe player. Na imagem, o IntelliJ mostra o aviso
“Player é abstrata, não pode ser instanciada”.
INTERFACE
Interface é um tipo de classe utilizada na programação orientada a objetos para diminuir
a dependência entre módulos do sistema (chamamos de acoplamento). Podemos
dizer que, em programação, a interface é um tipo abstrato de dados que irá
conter somente a definição, mas não a implementação.
RESULTADO
COMPOSIÇÃO
Temos as classes Veículo, Carro, Moto, Pneu, Volante, Janela e Guidão. As classes
Carro e Moto são subclasses de Veículo, portanto, herdam todos os atributos e
métodos da classe pai. Apesar disso, a classe Carro é composta das classes Pneu,
Volante e Janela, enquanto a classe Moto é composta pelas classes Pneu e Guidão.
CLASSE CASA
1. package sp.senai;
2.
3. public class Casa {
4. private Porta portaDeEntrada;
5. // getters and setters
6. public Porta getPortaDeEntrada() {
7. return portaDeEntrada;
8. }
9. public void setPortaDeEntrada(Porta portaDeEntrada) {
10. this.portaDeEntrada = portaDeEntrada;
11. }
12. }
CLASSE PORTA
1. package sp.senai;
2. public class Porta {
3. private double largura;
4. private double altura;
5. // getters and setters
6. public double getLargura() {
7. return largura;
8. }
9. public void setLargura(double largura) {
10. this.largura = largura;
11. }
12. public double getAltura() {
13. return altura;
14. }
15. public void setAltura(double altura) {
16. this.altura = altura;
17. }
18. }
POLIMORFISMO
A palavra polimorfismo tem origem grega e significa “muitas formas” (poli
= muitas, morfos = formas). No jogo de videogame Super Mario, você pode ter
diferentes personagens que realizam uma ação em comum, como a ação de correr.
O polimorfismo permite que cada personagem (Mario, Luigi e Yoshi) crie sua própria
forma de correr.
PLAYER
Na classe Player, definimos o método correr() como Correr padrão.
1. package sp.senai;
2. public class Player {
3. public void correr() {
4. System.out.println(“Correr padrão”);
5. }
6. }
MARIO
Na classe Mario, definimos o método correr como Correr do Mario.
1. package sp.senai;
2. public class Mario extends Player {
3. @Override
4. public void correr() {
5. System.out.println("Correr do Mario");
6. }
7. }
LUIGI
Na classe Luigi, definimos o método correr() como Correr do Luigi.
1. package sp.senai;
2. public class Luigi extends Player {
3. @Override
4. public void correr() {
5. System.out.println("Correr do Luigi");
6. }
7. }
MAIN
Na classe Main, criamos instâncias de Mario e Luigi e implantamos o método correr()
de cada um.
1. package sp.senai;
2. public class Main {
3. public static void main(String[] args) {
4. Mario mario = new Mario();
5. mario.correr();
6. Luigi luigi = new Luigi();
7. luigi.correr();
8. }
9. }
RESULTADO
• Correr do Luigi
• Correr do Mario
EXCEÇÕES
É comum, durante a execução de um sistema, acontecerem situações inesperadas.
Em programação, o inesperado é chamado de exceção. As exceções podem surgir
por diversos motivos, porém normalmente são falhas no projeto ou em sua
implementação. Também podem ocorrer por bugs causados por ações dos
usuários do sistema.
Fonte: Pixabay
RESULTADO
No exemplo a seguir, usaremos uma validação para tratar exceções. Para validação,
usaremos o método matches, que vai dizer se a String inteira corresponde
à regex1 pattern2. No caso, o matches verifica se há o símbolo @ e no mínimo um
ponto no endereço. O retorno desse método matches é booleano e, nesse exemplo,
retornou true.
1. package sp.senai;
2. import java.util.regex.Pattern;
3. public class Main {
4. public static void main(String[] args) {
5. String emailValido = “[email protected]”;
6. try {
7.
8. System.out.println(Pattern.matches(/*regen*/”^(.+)@(.+)$”,
9. emailValido.toLowerCase()));
10. } catch (Exception e) {
11. System.out.println(“Ocorreu o erro: “ + e);
12. }
13. }
14. }
SAIBA MAIS...
As regex são sentenças com códigos que podem identificar, de forma
+
flexível e concisa, uma string de caracteres de interesse, ou seja,
com um padrão desejado de caracteres. Dentro da classe regex, há a
classe Pattern, de soluções comprovadas para problemas recorrentes.
E, dentro da Pattern, há o método matches, que compara os dados
digitados pelo usuário à regex determinada.
PDF
Acompanhe o tutorial de instalação e configuração do MYSQL Workbench.
Acesse o material para obter o script bd.sql.
Arquivo: PDF01_InstConfigMySQL.pdf
Acesse o material e veja o vídeo para aprender a fazer a conexão com o banco de dados.
PDF
Veja a versão pdf do conteúdo do vídeo.
Arquivo: VID03_conexaoBD_v08.pdf
NESTE DESAFIO...
• Criação de classes
» Heranças
» Visibilidade
» Composição
» Interface
» Polimorfismo
» Exceções
• Conexão com banco de dados
» Estabelecendo a Conexão
» Executando comando de Ação
» Efetuando consultas
» Atualizações em Lote
PARA CONCLUIR...
REFERÊNCIAS
BAKKER, Paul; MARK, Sander. Java 9 Modularity. Massachusetts: O’Reilly Media
Inc., 2017.
DEITEL, H.M. Java – Como Programar. 8. ed. [S.l.]: Pearson & Artmed, 2010.
KÖLLING, Michael. The Evolving Nature of Interfaces. Java magazine, set./out. 2016.
SANTOS, Rui. Programando em Java 2 – Teoria & Aplicações. Rio de Janeiro: Axcel
Books, 2004.
CRÉDITOS
CONFEDERAÇÃO NACIONAL DA INDÚSTRIA SENAI - DEPARTAMENTO REGIONAL
– CNI DE SÃO PAULO
Robson Braga de Andrade
Presidente Ricardo Figueiredo Terra
Diretor Regional
DIRETORIA DE EDUCAÇÃO E TECNOLOGIA –
DIRET Cassia Regina Souza da Cruz
Rafael Esmeraldo Lucchesi Ramacciotti Gerente de Educação
Diretor de Educação e Tecnologia
Izabel Rego de Andrade
SERVIÇO NACIONAL DE APRENDIZAGEM Supervisora da Supervisão de Educação Online
INDUSTRIAL – SENAI – CONSELHO NACIONAL
Robson Braga de Andrade Claudia Baroni Savini Ferreira
Presidente Coordenação do Desenvolvimento do Curso
Controle de fluxo
Operadores aritméticos
Os operadores aritméticos são os símbolos que representam os
cálculos básicos matemáticos. Assim como na álgebra, também são
utilizados em programação. Na linguagem de programação Java, os
operadores aritméticos são declarados conforme mostra a tabela a
seguir.
SENAI 1
Banco de Dados em aplicativos Mobile Java
Sinal Operação
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo (resto de divisão)
++ Incremento
-- Decremento
+= Atribuição aditiva
-= Atribuição subtrativa
*= Atribuição de multiplicação
/= Atribuição de divisão
%= Atribuição de módulo
Fonte: elaborado pelo autor
SENAI 2
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 3
Banco de Dados em aplicativos Mobile Java
Operadores Lógicos
Os operadores lógicos possuem retorno booleano, portanto o
resultado deve ser sempre verdadeiro ou falso. Normalmente, são
utilizados para comparação de ao menos duas proposições e são
aliados à lógica matemática para a resolução de expressões
computacionais.
SENAI 4
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 5
Banco de Dados em aplicativos Mobile Java
Operadores Relacionais
Quando há necessidade de realizar comparação entre valores e
expressões, utiliza-se os operadores relacionais. Os operadores
relacionais possuem um comportamento similar aos operadores
lógicos, pois o resultado de uma comparação entre ao menos duas
proposições deverá retornar um valor booleano – portanto,
verdadeiro ou falso.
A utilização de operadores relacionais se dá, em grande parte, dentro
de condicionais ou laços de repetição.
SENAI 6
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 7
Banco de Dados em aplicativos Mobile Java
Estruturas de decisão
SENAI 8
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 9
Banco de Dados em aplicativos Mobile Java
switch(<expressão ou variável>) {
case <valor1>:
<instrução 1>;
break;
case <valor 2>:
<instrução 2>;
break;
case <valor N>:
<instrução N>;
break;
default:
<instrução Default>;
}
SENAI 10
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 11
Banco de Dados em aplicativos Mobile Java
case 8:
mes = "agosto";
break;
case 9:
mes = "setembro";
break;
case 10:
mes = "outubro";
break;
case 11:
mes = "novembro";
break;
case 12:
mes = "dezembro";
break;
default:
break;
}
System.out.println(mes);
}
}
SENAI 12
Banco de Dados em aplicativos Mobile Java
SENAI 13
Banco de Dados em aplicativos Mobile Java
Estruturas de repetição
SENAI 14
Banco de Dados em aplicativos Mobile Java
<inicialização>
while(<condição>) {
<instrução>
<iteração>
}
package sp.senai;
SENAI 15
Banco de Dados em aplicativos Mobile Java
<inicialização>
do {
<instrução>
<iteração>
} while(<condição>);
SENAI 16
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 17
Banco de Dados em aplicativos Mobile Java
for(<inicialização>;<condição>;<iteração>) {
<instrução>
}
package sp.senai;
SENAI 18
Banco de Dados em aplicativos Mobile Java
SENAI 19
Banco de Dados em aplicativos Mobile Java
GIT
Um repositório Git é um espaço de armazenamento virtual
para projetos, utilizado para gravar e deixar sempre
acessíveis as versões do código. O repositório local é a
pasta/diretório de sua máquina, no qual está seu projeto.
SENAI 1
Banco de Dados em aplicativos Mobile Java
Acesse o site do
GitHub
(https://github.com).
Na tela da home,
clique em “Sign up”
para criar uma conta. Git – Fonte: https://github.com/.
SENAI 2
Banco de Dados em aplicativos Mobile Java
Agora, siga o passo a passo:
1) Preencha com o
tipo de usuário.
2) Atribua um nome
ao repositório.
3) Opcionalmente,
faça uma breve
descrição do
repositório.
4) Escolha o tipo de
visualização do
repositório:
▪ Public: qualquer
pessoa pode ver
o projeto.
▪ Private: apenas
Git – Fonte: https://github.com/new. o proprietário
pode ver o
projeto.
5) Escolha quais arquivos podem ser criados junto com o
repositório:
• README: arquivo de informações sobre o projeto, que
funciona como cartão de visitas e histórico. É opcional, mas
altamente recomendado.
• .gitignore: arquivo especial do Git. Os arquivos listados dentro
dele são ignorados pelo Git.
• License: licença do seu projeto.
6) Para finalizar, clique em “Create repository” para criar o
repositório.
SENAI 3
Banco de Dados em aplicativos Mobile Java
O primeiro passo é
acessar o site https://git-
scm.com/downloads,
baixar e instalar o Git.
SENAI 4
Banco de Dados em aplicativos Mobile Java
SENAI 5
Banco de Dados em aplicativos Mobile Java
Dica!
Antes de iniciar os trabalhos, é uma boa prática fazer o
comando git pull origin nome-branch. Assim, evita-se o
trabalho em um código desatualizado, minimizando
conflitos.
SENAI 6
Banco de Dados em aplicativos Mobile Java
Saiba mais
Para mais informações, clique e acesse o site do Git
https://git-scm.com/docs e leia a documentação disponível.
SENAI 7
Banco de Dados em aplicativos Mobile Java
Criando Projeto
SENAI 1
Banco de Dados em aplicativos Mobile Java
SENAI 2
Banco de Dados em aplicativos Mobile Java
SENAI 3
Banco de Dados em aplicativos Mobile Java
SENAI 4
Banco de Dados em aplicativos Mobile Java
5. Seu projeto estará pronto para ser codificado. Note que, ao lado
esquerdo da tela, foi criada uma estrutura de pastas. Dentro da pasta
src do projeto, podemos encontrar o pacote sp.senai e, dentro desse
pacote, a classe Main. Mais ao centro da tela, temos a aba da classe
Main aberta. Note que já foi criado um método Main para executar a
classe.
SENAI 5
Banco de Dados em aplicativos Mobile Java
SENAI 6
Banco de Dados em aplicativos Mobile Java
SENAI 7
Banco de Dados em aplicativos Mobile Java
SENAI 8
Banco de Dados em aplicativos Mobile Java
SENAI 9
Banco de Dados em aplicativos Mobile Java
SENAI 10
Banco de Dados em aplicativos Mobile Java
SENAI 11
Banco de Dados em aplicativos Mobile Java
12. Após esse procedimento, você irá notar que os métodos sets e
gets foram criados.
SENAI 12
Banco de Dados em aplicativos Mobile Java
SENAI 13
Banco de Dados em aplicativos Mobile Java
SENAI 14
Banco de Dados em aplicativos Mobile Java
SENAI 15
Banco de Dados em aplicativos Mobile Java
SENAI 16
Banco de Dados em aplicativos Mobile Java
SENAI 17
Banco de Dados em aplicativos Mobile Java
SENAI 18
Banco de Dados em aplicativos Mobile Java
SENAI 19
Banco de Dados em aplicativos Mobile Java
20. Agora, para criar a nossa lista de objetos, iremos importar a classe
ArrayList. No código na sequência, logo após a criação dos três
objetos, criaremos um objeto chamado lista – que é uma instância da
classe ArrayList. Usaremos a propriedade add para inserir os objetos
criados à lista.
SENAI 20
Banco de Dados em aplicativos Mobile Java
SENAI 21
Banco de Dados em aplicativos Mobile Java
Criando classes e
instâncias
Criando Classes
1. Para criar uma classe utilizando o IntelliJ, clique com o botão direito
na pasta/package sp.senai, depois selecione New e, em seguida, Java
Class.
SENAI 1
Banco de Dados em aplicativos Mobile Java
SENAI 2
Banco de Dados em aplicativos Mobile Java
Código inserido:
package sp.senai;
import java.util.Date;
import java.util.regex.Pattern;
SENAI 3
Banco de Dados em aplicativos Mobile Java
Agora que já sabemos como criar uma classe, vamos criar uma
instância dela, ou seja, criar um objeto.
package sp.senai;
SENAI 4
Banco de Dados em aplicativos Mobile Java
SENAI 1
Banco de Dados em aplicativos Mobile Java
SENAI 2
Banco de Dados em aplicativos Mobile Java
curso.
SENAI 3
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 4
Banco de Dados em aplicativos Mobile Java
package sp.senai;
public class Curso {
// atributo nome do curso
private String nomeCurso;
// metodo para alterar o nome do curso
public void setNomeCurso(String curso) {
nomeCurso = curso; // armazena o nome do curso
} // fim do metodo
// metodo para recuperar o nome do curso
public String getNomeCurso() {
return nomeCurso; // retorno do valor
} // fim do metodo
private int quantidadeAlunos;
}
SENAI 5
Banco de Dados em aplicativos Mobile Java
SENAI 6
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 7
Banco de Dados em aplicativos Mobile Java
Construtores
SENAI 8
Banco de Dados em aplicativos Mobile Java
SENAI 9
Banco de Dados em aplicativos Mobile Java
SENAI 10
Banco de Dados em aplicativos Mobile Java
SENAI 11
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 12
Banco de Dados em aplicativos Mobile Java
SENAI 13
Banco de Dados em aplicativos Mobile Java
SENAI 14
Banco de Dados em aplicativos Mobile Java
package sp.senai;
Dica!
Na linguagem de programação Java, utiliza-se a palavra
reservada this para realizar referência às propriedades da
própria classe (objeto).
SENAI 15
Banco de Dados em aplicativos Mobile Java
Instalação e configuração
SENAI 1
Banco de Dados em aplicativos Mobile Java
SENAI 2
Banco de Dados em aplicativos Mobile Java
SENAI 3
Banco de Dados em aplicativos Mobile Java
SENAI 4
Banco de Dados em aplicativos Mobile Java
SENAI 5
Banco de Dados em aplicativos Mobile Java
SENAI 6
Banco de Dados em aplicativos Mobile Java
SENAI 7
Banco de Dados em aplicativos Mobile Java
SENAI 8
Banco de Dados em aplicativos Mobile Java
SENAI 9
Banco de Dados em aplicativos Mobile Java
SENAI 10
Banco de Dados em aplicativos Mobile Java
SENAI 11
Banco de Dados em aplicativos Mobile Java
SENAI 12
Banco de Dados em aplicativos Mobile Java
15. Nesta etapa, iremos adicionar o MySQL Server para iniciar quando
o sistema operacional for iniciado (A) e será configurado como um
serviço do Windows (B).
SENAI 13
Banco de Dados em aplicativos Mobile Java
SENAI 14
Banco de Dados em aplicativos Mobile Java
SENAI 15
Banco de Dados em aplicativos Mobile Java
SENAI 16
Banco de Dados em aplicativos Mobile Java
SENAI 17
Banco de Dados em aplicativos Mobile Java
SENAI 18
Banco de Dados em aplicativos Mobile Java
SENAI 19
Banco de Dados em aplicativos Mobile Java
SENAI 20
Banco de Dados em aplicativos Mobile Java
SENAI 21
Banco de Dados em aplicativos Mobile Java
SENAI 22
Banco de Dados em aplicativos Mobile Java
SENAI 23
Banco de Dados em aplicativos Mobile Java
SENAI 24
Banco de Dados em aplicativos Mobile Java
SENAI 25
Banco de Dados em aplicativos Mobile Java
SENAI 26
Banco de Dados em aplicativos Mobile Java
Co n e x ã o c o m o Ba n c o
d e Da d o s
• Estabelecer a conexão;
• Executar comando de ação;
• Efetuar consultas;
• Fazer uma atualização em lote.
Iniciando projeto
SENAI 1
Banco de Dados em aplicativos Mobile Java
SENAI 2
Banco de Dados em aplicativos Mobile Java
SENAI 3
Banco de Dados em aplicativos Mobile Java
SENAI 4
Banco de Dados em aplicativos Mobile Java
package sp.senai;
SENAI 5
Banco de Dados em aplicativos Mobile Java
Gerando as tabelas
Dica!
O arquivo bd.sql disponibilizado é apenas um script, como
um texto, que abrimos no Workbench e executamos os
scripts para gerar a tabela. Depois de criada a tabela, o
arquivo fica sem uso e pode até ser excluído, pois o banco
de dados se encontra no interior do MySQL. Portanto, não
há necessidade de fazer uma pasta para salvá-lo.
SENAI 6
Banco de Dados em aplicativos Mobile Java
b
a
SENAI 7
Banco de Dados em aplicativos Mobile Java
b
a
SENAI 8
Banco de Dados em aplicativos Mobile Java
4. Opte pelo trecho da tabela (a) e clique em “Run” (b) para criar a
tabela (c).
SENAI 9
Banco de Dados em aplicativos Mobile Java
SENAI 10
Banco de Dados em aplicativos Mobile Java
SENAI 11
Banco de Dados em aplicativos Mobile Java
SENAI 12
Banco de Dados em aplicativos Mobile Java
Dica!
Não é necessário seguir essa estrutura de pastas.
SENAI 13
Banco de Dados em aplicativos Mobile Java
SENAI 14
Banco de Dados em aplicativos Mobile Java
SENAI 15
Banco de Dados em aplicativos Mobile Java
SENAI 16
Banco de Dados em aplicativos Mobile Java
SENAI 17
Banco de Dados em aplicativos Mobile Java
SENAI 18
Banco de Dados em aplicativos Mobile Java
SENAI 19
Banco de Dados em aplicativos Mobile Java
7. Clique em “OK”.
SENAI 20
Banco de Dados em aplicativos Mobile Java
SENAI 21
Banco de Dados em aplicativos Mobile Java
SENAI 22
Banco de Dados em aplicativos Mobile Java
import.java.sql.*;
SENAI 23
Banco de Dados em aplicativos Mobile Java
SENAI 24
Banco de Dados em aplicativos Mobile Java
try {
// estabelece a conexao com o banco
connection = DriverManager.getConnection(DATABASE_URL,
"root", "root");
// cria statement para a consulta ao banco
stm = connection.createStatement();
// consulta o banco
rs = stm.executeQuery("select * from alunos");
}
SENAI 25
Banco de Dados em aplicativos Mobile Java
// apresenta o resultado
while (rs.next())
System.out.println(rs.getInt(1) +
" " + rs.getString(2) +
" " + rs.getDate(3) +
" " + rs.getDate(4) +
" " + rs.getString(5));
connection.close();
SENAI 26
Banco de Dados em aplicativos Mobile Java
SENAI 27
Banco de Dados em aplicativos Mobile Java
import java.sql.*;
connection.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
SENAI 28
Banco de Dados em aplicativos Mobile Java
package sp.senai;
import java.sql.*;
try{
//estabelecer uma conexao com o banco
connection = DriverManager.getConnection(DATABASE_URL,
"root", "root");
//criar statement para consulta ao banco
stm = connection.createStatement();
SENAI 29
Banco de Dados em aplicativos Mobile Java
SENAI 30
Banco de Dados em aplicativos Mobile Java
SENAI 31
Banco de Dados em aplicativos Mobile Java
SENAI 32
Banco de Dados em aplicativos Mobile Java
SENAI 33
Banco de Dados em aplicativos Mobile Java
Importante
Precisamos prestar atenção ao realizar updates, pois o uso
incorreto da cláusula where, responsável por filtrar os
registros que serão alterados, pode ocasionar em perdas de
informações irrecuperáveis dentro de um sistema de banco
de dados.
SENAI 34