+ Curso de Android XVIII Jornada de Cursos. + 10. Persistência.

Slides:



Advertisements
Apresentações semelhantes
O Comando DROP INDEX Para eliminar um índice definido sobre uma tabela, utilize: Drop Index on ; Ex: No Access: Drop Index X on.
Advertisements

Banco de Dados Prof. Antonio.
Banco de Dados I Aula 20.
Triggers Renata Viegas.
SQL Avançado Continuação
BD em.NET: Passo a passo conexão com SQL Server 1º Semestre 2010 > PUCPR > BSI Bruno C. de Paula.
Prof. Alessandro J. de Souza
Prof.: Bruno Rafael de Oliveira Rodrigues
Java Conexão com Banco de Dados
SISTEMAS DE INFORMAÇÃO Sistemas de Bancos de Dados 2º Semestre – 2010 Pedro Antonio Galvão Junior Fone:
Sistemas de Informação Redes de Computadores
Maurício Edgar Stivanello
SGBD.
Jeferson R. Ferreira C o m p u t a ç ã o M ó v e l.
Introdução à Engenharia da Computação
Oficina sobre banco de dados
SCC Bancos de Dados e Suas Aplicações
SCC Bancos de Dados e Suas Aplicações
Material III-Bimestre Wagner Santos C. de Jesus
Linguagem de Banco de Dados - SQL
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
Introdução a JDBC Eduardo Martins Guerra Instituto Tecnológico de Aeronáutica Curso de Pós-Graduação em Engenharia de Software Programação Distribuída.
Treinamento em Android
Banco de dados Profª Kelly Medeiros.
Comandos de SQL Excel VBA II.
Unidade I: “Dê um mergulho rápido”
Monitoria GDI Aula Prática
Monitoria GDI Aula Prática
SQL Álvaro Vinícius de Souza Coêlho
Design Patterns / Acesso ao banco de dados (java.sql)
Tipos de Linguagens do Banco de Dados
(Linguagem de Consulta Estruturada)
+ Curso de Android XVIII Jornada de Cursos Criando aplicações Android (cont.)
Banco de Dados Aplicado ao Desenvolvimento de Software
FTIN FORMAÇÃO TÉCNICA EM INFORMÁTICA Módulo de Programação Prof. Flávio Dantas.
P ROGRAMAÇÃO Prof.: Bruno Rafael de Oliveira Rodrigues.
Oracle 9i: SQL e PL/SQL Bruno Celso Cunha de Freitas
Desenvolvendo um script SQL
Linguagem SQL.
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Treinamento sobre SQL.
Banco de dados.
Linguagem de Definição de Dados
Baseado no material do Professor Raul Paradeda
Programação para Web Unidade 06 – Java Beans e BDs Prof.: Henrique Santos.
Projeto de Sistemas de Informação Prof. Schneider Oracle Object-Relational.
SQL- Structured Query Language  SQL é uma linguagem de comandos para interagir com uma BD relacional (não é case-sensitive).  A linguagem Java permite.
Treinamento SQL Server
Triggers (Gatilhos) Professor Esp. Diego André Sant’Ana
SQLite Banco de Dados II.
Curso de Análise e Desenvolvimento de Sistemas Projeto de Banco de Dados Marcelo da Silveira Siedler.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
Java Conexão com Baco de dados Saulo Bazzi Oberderfer Fonte:
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
IEC Banco de Dados I Aula 04 – SQL (II) Turmas: Sistemas de Informação Professora: André Luiz da Costa Carvalho
VBA – Visual Basic para Aplicativos
Linguagem de definição de dados - SQL
Programação para Web I AULA 2 BANCO DE DADOS.
Fundamentos de Banco de Dados Prof. André Cypriano M. Costa
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
Guardando dados no Android. Persistência de informações Android fornece três tipos de persistência: Preferências compartilhadas (propriedades) Arquivos.
Normalização (4FN) Na literatura aparecem outras formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN. Destas a única que tem importância na.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Desenvolvimento Androd Prof. Rone Ilídio
Transcrição da apresentação:

+ Curso de Android XVIII Jornada de Cursos

+ 10. Persistência

+ Programação com banco de dados O Android tem suporte nativo a um banco de dados relacional: o SQLite ( ). Isto facilita muito o trabalho de armazenamento e leitura de dados no dispositivo. Ao contrário de JME, o Android permite que dados sejam armazenados e recuperados da base de dados através de comandos SQL;

+ Programação com banco de dados Além de que a base de dados existe fisicamente, podendo ser copiada do dispositivo para uma unidade de backup, por exemplo Ou ainda, o banco de dados pode ser instalado no dispositivo já com os dados pré-carregados etc.

+ Criando o banco de dados O comando abaixo cria o banco de dados, ou retorna a referência para o mesmo, caso já tenha sido criado. myDB = getApplicationContext(). openOrCreateDatabase( DATABASE_NAME, MODE_PRIVATE,null);

+ A linguagem SQL O SQL foi desenvolvido para ser uma linguagem padrão para operações com Banco de Dados. A linguagem SQL foi elaborada para ser independente de hardware ou do software. Ao usar o SQL, você não precisa saber a respeito do software de banco de dados ou do hardware envolvido em uma operação. Tudo o que você precisa conhecer são os comandos/instruções SQL padrão para solicitar informações, que obrigatoriamente é o mesmo em todos os sistemas que utilizam o SQL.

+ CREATE TABLE O comando CREATE TABLE é usado para criar uma tabela em um banco de dados. CREATE [TEMPORARY] TABLE IF NOT EXISITS [tabela] ([ [coluna1] [tipo de dado1] {NULL|NOT NULL}...])

+ INSERT O comando INSERT é usado para adicionar um ou mais registros em tabela de um banco de dados. INSERT INTO tabela (coluna1, [coluna2,...]) VALUES (valor1, [valor2,...])

+ UPDATE O comando UPDATE é usado para atualizar registros em uma ou mais tabelas do banco de dados. UPDATE tabela SET campo1 = valor1 [,campo2 = valor2,...] [WHERE condição]

+ DELETE O comando DELETE é utilizado para remover um ou mais registros de uma tabela no banco de dados. DELETE FROM tabela [WHERE condição]

+ SELECT O comando SELECT é utilizado para recuperar um conjunto de registros de uma ou mais tabelas. Ela recupera zero ou mais linhas, dependendo das condições colocadas. SELECT [DISTINCT] * | expressão [ AS nome_saída ] [,...] [ FROM tabela1 [t1, tabela2 t2...] [ WHERE condição ] [ GROUP BY expressão [,...] ] [ ORDER BY expressão [ ASC | DESC] [,...] ] [ LIMIT { contador | ALL } ]

+ Exemplos de SQL usando Android O comando abaixo pode ser usado para executar as funções do banco de dados: É importante ressaltar que este comando deve ser usado para consultas que NÃO retornam dados (todas as outras, exceto o SELECT). myDB.execSQL(String query)

+ Exemplos de SQL usando Android Para executar um SELECT, utilizamos o seguinte método: myDB.query(boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);

+ Exemplos de SQL usando Android Como exemplos, iremos mostrar o comportamento da função com os comandos INSERT e SELECT. String TABLE_NAME = "pessoa"; String nome = "Nome"; String sobreNome = "Sobrenome" ; String pais = "Pai e Mãe"; Integer idade = 22; myDB.execSQL( "INSERT INTO" +TABLE_NAME +"(nome, sobrenome, pais, idade)" +" VALUES " +"('" + nome + "'," +"'" + sobreNome + "'," +"'"+ pais + "'," +idade + ");");

+ Exemplos de SQL usando Android Cursor c = myDB.query(TABLE_NAME,newString[] {"nome", "sobrenome", "pais", "idade"},null,null,null,null,null); if(c !=null) { while( ! c.isAfterLast() ) { if( c.getPosition() == -1 ) {c.moveToFirst();} int posColunaNome = c.getColumnIndex("nome"); int posColunaSobreNome = c.getColumnIndex("sobrenome"); int posColunaPais = c.getColumnIndex("pais"); int posColunaIdade = c.getColumnIndex("idade"); String nome = c.getString(posColunaNome); String sobrenome = c.getString(posColunaSobreNome); String pais = c.getString(posColunaPais); intidade = c.getInt(posColunaIdade); }

+ Melhorando! Voltemos mais uma vez para a nossa aplicação de cadastro (a primeira versão); Faça com que a aplicação armazene os dados em um banco de dados dentro do dispositivo Android;

+ Melhorando! [2] Implemente um mecanismo que faça a sincronização do banco de dados remoto (usado nos exemplos de Internet) com o banco de dados local. Implemente uma tela de atualização, com um botão para realizar a ação e um texto indicando a quantidade de registros no banco de dados;

+ Melhorando! [2] CREATE TABLE IF NOT EXISTS pessoa (nome varchar(100) NOT NULL, idade int (11) NOT NULL, profissao varchar(100) NOT NULL)

+ Desafio! Implemente um sistema de blog; Ele precisa ter as seguintes funcionalidades: Listar Posts; Inserir Posts com imagens; Comentar um post; Visualizar o comentário em um post; USE BANCO DE DADOS!

+ Desafio! Restrições: Listar os posts com um ListView que sempre está pegando os dados do BD; Cada ação pede um layout diferente, inclusive um menu inicial; A quantidade de comentários deve ser exibida ao visualizarmos um post; Selecione as imagens de uma galeria e exiba quando visualizarmos um post;

+ Desafio! CREATE TABLE IF NOT EXISTS post ( id integer PRIMARY KEY AUTOINCREMENT, titulo text NOT NULL, autor text NOT NULL, texto text NOT NULL, foto integer NOT NULL) CREATE TABLE IF NOT EXISTS comentario (id integer PRIMARY KEY AUTOINCREMENT, post_id int eger NOT NULL, texto text NOT NULL, autor text NOT NULL)

+ 11. Google Maps

+ Google Maps Um recurso muito interessante no Android é o suporte ao Google Maps. O Google Maps é um serviço acessado através da internet (não é instalado no dispositivo) e que contém mapas do mundo inteiro, sendo também totalmente compatível com o Android.

+ Google Maps Para que o Google Maps funcione no Android em ambiente de desenvolvimento, é necessário obter uma chave no site do Google. É necessário apenas ter uma conta Google e fazer login. Outro detalhe é que a chave vale apenas para um computador, pois é gerada com base na assinatura digital da máquina.

+ Obtendo a chave para acessar o Maps Para poder usar o serviço Google Maps, é necessário ter uma chave de autorização devidamente gerada no site do Google; esta chave é gerada gratuitamente. Para obtermos uma chave, portanto, precisamos primeiro obter a assinatura digital da máquina onde está instalado o emulador do Android.

+ Obtendo a chave para acessar o Maps No prompt de comando: Vá até a pasta bin do JDK. keytool.exe -v -list -alias androiddebugkey -keystore "C:\Users\ \.android\debug.keystore" – storepass android -keypass android

+ Obtendo a chave para acessar o Maps

+ Copie o Fingerprint do Certificado MD5 gerado para a sua máquina; De posse do fingerprint, entre no site api-signup.html; api-signup.html No site, leia os termos da licença e se concordar, marque a opção que está de acordo, cole o certificado obtido na caixa My certificates... e cliquena opção Generate API Key.

+ Obtendo a chave para acessar o Maps

+ Será solicitado que você faça login no Google, então, você deve ter uma contaou senão você poderá criá-la neste momento. Faça o login. Sua chave será gerada e exibida pra você na tela, com um exemplo de como utilizar o componenteMapView para exibir o mapa.

+ Obtendo a chave para acessar o Maps

+ Construindo uma aplicação simples Project Name: ProjetoMapaSimples Build Target: Google APIs (2.3.3) Application name: MapaSimplesAndroid Package name: br.ufpe.cin.android.appmaps Create Activity: Principal Min SDK Version: 10

+ Construindo uma aplicação simples Insira as tags: ANTES da tag DENTRO da tag

+ Construindo uma aplicação simples main.xml <RelativeLayout xmlns:android= android:layout_width="fill_parent" android:layout_height="fill_parent" > <com.google.android.maps.MapView android:layout_width="fill_parent" android:layout_height="fill_parent" android:enabled="true" android:clickable="true" android:apiKey="0B0-L7d2MIQm2lx81czA67LoDbg-m0qDjH0iqXA" />

+ Construindo uma aplicação simples Principal.java: super.onCreate(savedInstanceState); setContentView(R.layout.main); MapView mapa = (MapView) findViewById(R.id.mapView); protected Boolean isRouteDisplayed() { return false ;} public class Principal extends MapActivity{