Desenvolvimento Androd Prof. Rone Ilídio

Slides:



Advertisements
Apresentações semelhantes
Maurício Edgar Stivanello
Advertisements

Linguagem de Banco de Dados - SQL
MySQL Gerdson de Araújo Silva Universidade Federal de Alagoas Maceió-AL, 21 de maio de 2009.
+ Curso de Android XVIII Jornada de Cursos Persistência.
Treinamento em Android
Banco de dados Profª Kelly Medeiros.
Laboratório de Programação I
Rafael Lucio, Desenvolvedor Jr Padrão Informática e Assessor de TI Secretaria Municipal da Saúde;
Prof. Renato de Oliveira Bastos
+ Curso de Android 19ª Jornada de Cursos Criando aplicações Android.
O android traz suporta nativo ao bando de dados SQLite Open-source Por padrão, os bancos de dados podem ser acessados apenas pelas aplicações.
Banco de Dados -Aprendendo conceitos -Usando o SQL Conf para:
Manipulando contatos no Android Por José Antonio Borges.
ASP.NET Passo a Passo Criando um CRUD Conteúdo do Capítulo 1. Acessar bancos de dados SQL Server 2. Utilizar o GridView 3. Utilizar o DetailView 4. Implementar.
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.
Programação para Internet Aula 11 SQL (Introdução a linguagem, comandos de modificação: Create, Drop, Alter, Insert, Delete, Update)
Primeiros passeios no código Java para Android. Manifest
Tecnologias para Internet Thyago Maia Tavares de Farias Aula 18.
Programação para Dispositivos Móveis Fatec Ipiranga Análise e Desenvolvimento de Sistemas Aula 06 – Controlando o fluxo de eventos e passando parametro.
Categorias Computacionais N Um modelo categorial para bancos de dados Vítor De Araújo
Criando um Banco de Dados no PHPMyAmin
Projeto C - CheCar.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal
Banco de Dados José Antônio da Cunha CEFET – RN.
Tutoriais de desenvolvimento para Android
ASP.NET Passo a Passo AJAX
Marcos Antonio Estremote
Prof. Rone Ilídio UFSJ-DTECH-CAP
SQLite Criando meu primeiro projeto
Hello World File>New>Other..>Android>Android Application Project.
Programação Orientada a Objetos Prof. Rone Ilídio - UFSJ
Agregador de Notícias e Eventos - UFPI
SQLite SQLite é um banco de dados Open Source. Ele suporta recursos de banco de dados relacionais padrão, como sintaxe SQL, transações, etc. SQLite suporta.
AsyncTask e Socket no Android
3.1 Classes e Objetos Em um programa orientado a objetos normalmente existem vários objetos de um mesmo tipo. Por exemplo, um programa de controle de.
COM222 DESENVOLVIMENTO DE SISTEMAS WEB
Programação para Android Prof. Rone Ilídio - UFSJ
Java: Interfaces Alcides Calsavara.
HABITAT.
Programação para Dispositivos Móveis: Acessando recursos do celular
Banco de Dados no Cliente com HTML 5 e JS
Camada de Persistência
Desenvolvimento Androd Prof. Rone Ilídio
BANCO DE DADOS Araújo Lima Out / 2017 Araújo.
Programação Orientada a Objetos
BANCO DE DADOS Araújo Lima Outubro / 2017 Araújo.
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Daniel Paulo SQL Server 2016 Módulo II Daniel Paulo
Programação para Internet Rica
Acesso a Banco de dados com JDBC
Aplicativos para Internet Aula 13
Aplicativos para Internet Aula 12
Elaborando as Interfaces Aulas 37, 38 e 39.
ADOQuery ADOConnection.
Rosemary Silveira Filgueiras Melo
Rosemary Silveira Filgueiras Melo
Laboratório I Mateus Raeder.
AsyncTask e Socket no Android
PROF. ARNALDO MARTINS HIDALGO JUNIOR PROF. LEANDRO LANZA
Laboratório I Mateus Raeder.
MS-SQL Server Structure Query Language
PL/SQL Triggers e Procedures
Prática O-R Fernando Fonseca.
Aula Prática Objeto-Relacional Monitoria GDI
Prática - BD Distribuído
Prática O-R Fernando Fonseca.
Ordenando Coleções A Classe Collections.
RESULUÇÃO DOS EXERCÍCIOS E
Módulo III Capítulo 3: Linguagem SQL
Transcrição da apresentação:

Desenvolvimento Androd Prof. Rone Ilídio Banco de Dados – SQLite Desenvolvimento Androd Prof. Rone Ilídio

Introdução SQLite: banco de dados relacional criado nos dispositivos Duas principais classes: SQLiteDatabase: contém os métodos para manipulação dos dados SQLiteOpenHelper: responsável pela criação do banco de dados

Exemplo: Banco de Dados Simples Crie um novo projeto padrão com o nome de BDSimples Escolha EmptyActivity Mantenha os nomes da activity e o do arquivo de layout Crie a classe CriaBanco (filha de SQLiteOpenHelper) como o código a seguir

public class CriaBanco extends SQLiteOpenHelper { public CriaBanco(Context context){ super(context, "banco.db",null,1); } @Override public void onCreate(SQLiteDatabase db){ String sql = "CREATE TABLE livros (" + "id integer primary key autoincrement," + "titulo text," + "autor text," + "editora text" +")"; db.execSQL(sql); public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS livros"); onCreate(db);

Classe CriaBanco CriaBanco deve implementar os métodos onCreate e onUpgrate onCreate: executado após a criação do objeto Deve chamar o vétodo db.execSQL(sql ), onde sql é uma string com os comandos SQL que definem as tabelas do banco de dados (create table) No exemplo, a tabela livros foi criada com os campos id, titulo, autor e editora onUpgrade: executado quando uma nova versão do banco de dados é definida para essa aplicação (não será utilizado aqui) Deve apagar as tabelas anteriores e chamar o onCreate para criar novas tabelas

Classe CriaBanco No método construtor da classe, o construtor da mãe e chamado. super(context, "banco.db",null,1); context é a aplicação banco.db é o nome do banco a ser criado, se não existir null pode ser passa um parâmetro que define o tipo de retorno de consultas (Cursor), que não trataremos 1: versão do banco de dados

Classe BancoController Possui um objeto do tipo CriaBanco, instanciado no construtor Possui métodos para manipular os dados insereDado () : executa um comando insert do SQL atualizaDado () : executa um comandos update do SQL excluiDado() : executa um comando delete do SQL lerTodosDados(): executa um comando select do SQL para selecionar todos os dados da tabela

public class BancoController { private SQLiteDatabase db; private CriaBanco banco; public BancoController(Context context){ banco = new CriaBanco(context); } public void atualizaDado(int id, String titulo, String autor, String editora){ db = banco.getWritableDatabase(); db.execSQL("Update livros set titulo = '" + titulo + "', autor = '" + autor + "', editora = '" + editora + "' where id = " + id); db.close(); BancoController 1/3

public void excluiDado(int id){ db = banco. getReadableDatabase(); db public void excluiDado(int id){ db = banco.getReadableDatabase(); db.execSQL("Delete from livros where id = " + id); db.close(); } public void insereDado(String titulo, String autor, String editora){ db = banco.getWritableDatabase(); db.execSQL("Insert into livros(titulo,autor,editora)"+ " values('"+titulo+"', '"+ autor + "', '" + editora +"')"); BancoController 2/3

public String lerTodosDados(){ db = banco public String lerTodosDados(){ db = banco.getReadableDatabase(); Cursor cursor = db.rawQuery("Select * from livros",null); cursor.moveToFirst(); String saida = ""; do{ int id = cursor.getInt(0); String titulo = cursor.getString(1); String autor= cursor.getString(2); String editora = cursor.getString(3); saida += id + ":" + titulo+ ":" + autor + ":" + editora + "\n"; }while(cursor.moveToNext()); cursor.close(); db.close(); return saida; } BancoController 3/3

BancoController.java O método db.execSQL() recebe uma string no formato SQL e executa no banco de dados Método atualizaDado() Executa um comando de update no banco de dados no seguinte formato: UPDATE livros set titulo=‘TTT’, autor=‘AAA’,editora =‘EEE’ where id=X

BancoController.java public void excluiDado() Método insereDado() Exclui uma linha. Utiliza o seguinte comando SQL: Delete From livros Where id = X Método insereDado() Insere uma nova linha na tabela com o seguinte SQL: Insert into livros(titulo,autor,editora) values(‘TTT’ , ’AAA’, ‘EEE’)

BancoController.java Método lertodosdados(): Busca todos os campos de todas as linhas da tabela livros O retorno da execSQL é um objeto do tipo Cursor que contém as informações solicitadas O métodos cursor.moveToFirst() posiciona o apontador de linhas na primeira linha O método cusor.moveToNext() posiciona o apontador para a próxima linha

Interface Gráfica - activity_main.xml Id: etTitulo Id: etAutor Id: etEditora Id: btInserir OnClick: onClickInserir Id: btExibir OnClick: onClickExibir Id: btManipular OnClick: onClickManipular

public class MainActivity extends AppCompatActivity { BancoController crud ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); crud = new BancoController(getBaseContext()); } public void onClickExibir(View view){ startActivity(new Intent(getApplicationContext(),ExibirActivity.class)); public void onClickManipular(View view) { startActivity(new Intent(getApplicationContext(),ManipularActivity.class)); MainActivity.java 1/2

public void onClickInserir(View view){ String titulo, autor, editora; EditText etTitulo = (EditText)findViewById(R.id.etTitulo); titulo = etTitulo.getText().toString(); EditText etAutor = (EditText)findViewById(R.id.etAutor); autor = etAutor.getText().toString(); EditText etEditora = (EditText)findViewById(R.id.etEditora); editora = etEditora.getText().toString(); crud.insereDado(titulo,autor,editora); Toast.makeText(getApplicationContext(), "Dados inseridos com sucesso!", Toast.LENGTH_LONG).show(); } MainActivity.java 2/2

Crie as duas novas activities Crie os seguintes arquivos para cada activity ExibirActivity.java e activity_exibir.xml ManipularActivity.java e activity_manipular.xml Crie as seguintes interfaces gráficas

exibir_activity.xml Id: etExibir Obs: o etExibir está dentro de um ScrollView. Mude a propriedade: android:fadeScrollbars="false“ Veja código a seguir Id:btnVoltar onClick: onClickVoltar Obs: fora do ScrollView

<. xml version="1. 0" encoding="utf-8". > <android. support <?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout ... > <ScrollView android:id="@+id/svExibir" android:fadeScrollbars="false“ ... > <EditText android:id="@+id/etExibir" android:layout_width="match_parent" android:layout_height="match_parent" android:focusable="false"/> </ScrollView> <Button android:id="@+id/btVoltar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="8dp" android:layout_marginEnd="8dp" android:layout_marginStart="8dp" android:onClick="onClickVoltar" android:text="Voltar" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" /> </android.support.constraint.ConstraintLayout> exibir_activity.xml

ExibirActivity.java public class ExibirActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_exibir); BancoController bc = new BancoController(getBaseContext()); EditText etExibir = (EditText)findViewById(R.id.etExibir); etExibir.setText(bc.lerTodosDados()); } public void onClickVoltar(View view){ finish();

activity_manipular.xml Id: etID Id: etTitulo Id: etAutor Id: etEditora Id: btExcluir onClick: onClickExcluir Id: btAlterar onClick: onClickAlterar Id: btVoltar onClick: onClickVoltar

ManipularActivity.java 1/2 public class ManipularActivity extends AppCompatActivity { BancoController crud ; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_manipular); crud = new BancoController(this); } public void onClickExcluir(View view){ String aux; EditText etID = (EditText)findViewById(R.id.etID); aux = etID.getText().toString(); int id = Integer.parseInt(aux); crud.excluiDado(id); Toast.makeText(getApplicationContext(), "Dados excluidos com sucesso!", Toast.LENGTH_LONG).show(); ManipularActivity.java 1/2

ManipularActivity.java 2/2 public void onClickAlterar(View view){ String aux, titulo, autor, editora; EditText etID = (EditText)findViewById(R.id.etID); aux = etID.getText().toString(); int id = Integer.parseInt(aux); EditText etTitulo = (EditText)findViewById(R.id.etTitulo); titulo = etTitulo.getText().toString(); EditText etAutor = (EditText)findViewById(R.id.etAutor); autor = etAutor.getText().toString(); EditText etEditora = (EditText)findViewById(R.id.etEditora); editora = etEditora.getText().toString(); crud.atualizaDado(id,titulo,autor,editora); Toast.makeText(getApplicationContext(), "Dados alterados com sucesso!", Toast.LENGTH_LONG).show(); } ManipularActivity.java 2/2