Tutorial SQLite #2 - Criação do Banco de Dados
Boa noite amigos!
Hoje vamos montar a estrutura do banco de dados.
Primeiramente vamos criar o pacote br.com.blogspot.androidandrekunde.dao.banco onde a classe contendo o banco ficará.
E dentro dela criamos o arquivo BaseDAO:
Essa classe será a responsável por criar e atualizar o banco de dados.
Agora criaremos a classe de modelagem de dados, Contato:
Precisamos criar também uma classe para realizar a conexão com o banco de dados, chamada ContatoDAO:
Feito isso, vamos atualizar a classe Main, que ficará assim:
Clique aqui, para baixar este tutorial.
Hoje vamos montar a estrutura do banco de dados.
Primeiramente vamos criar o pacote br.com.blogspot.androidandrekunde.dao.banco onde a classe contendo o banco ficará.
E dentro dela criamos o arquivo BaseDAO:
package br.com.blogspot.androidandrekunde.dao.banco;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class BaseDAO extends SQLiteOpenHelper {
//Nome do banco de dados
public static final String NOME_BANCO = "exemplosqlite";
//Versão do banco de dados
public static final int VERSAO_SCHEMA = 1;
//Nome da tabela
public static final String TABELA_CONTATO = "contato";
//Nome dos campos
public static final String CAMPO_ID = "_id";
public static final String CAMPO_NOME = "nome";
public static final String CAMPO_TELEFONE = "telefone";
public static final String CAMPO_EMAIL = "email";
private static final String CRIAR_TABELA_CADASTRO = "CREATE TABLE "
+ TABELA_CONTATO + " (" + CAMPO_ID + " INTEGER PRIMARY KEY, "
+ CAMPO_NOME + " TEXT, "
+ CAMPO_TELEFONE + " TEXT, "
+ CAMPO_EMAIL + " TEXT)";
public BaseDAO(Context context) {
super(context, NOME_BANCO, null, VERSAO_SCHEMA);
}
@Override
public void onCreate(SQLiteDatabase db) {
db.execSQL(CRIAR_TABELA_CADASTRO);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
}
Essa classe será a responsável por criar e atualizar o banco de dados.
Agora criaremos a classe de modelagem de dados, Contato:
package br.com.blogspot.androidandrekunde.model;
import java.io.Serializable;
public class Contato implements Serializable {
private static final long serialVersionUID = 1L;
private long id;
private String nome;
private String telefone;
private String email;
public Contato() {
}
public Contato(String nome, String telefone, String email) {
this.nome = nome;
this.telefone = telefone;
this.email = email;
}
public Contato(long id, String nome, String telefone, String email) {
this.id = id;
this.nome = nome;
this.telefone = telefone;
this.email = email;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNome() {
return nome;
}
public void setNome(String nome) {
this.nome = nome;
}
public String getTelefone() {
return telefone;
}
public void setTelefone(String telefone) {
this.telefone = telefone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
}
Precisamos criar também uma classe para realizar a conexão com o banco de dados, chamada ContatoDAO:
package br.com.blogspot.androidandrekunde.dao;
import java.util.ArrayList;
import java.util.List;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import br.com.blogspot.androidandrekunde.dao.banco.BaseDAO;
import br.com.blogspot.androidandrekunde.model.Contato;
public class ContatoDAO {
private SQLiteDatabase database;
private BaseDAO baseDAO;
public ContatoDAO(Context context) {
baseDAO = new BaseDAO(context);
}
public void open() throws SQLException {
database = baseDAO.getWritableDatabase();
}
public void close() {
baseDAO.close();
}
public long novoContato(Contato contato) {
ContentValues values = new ContentValues();
values.put(BaseDAO.CAMPO_NOME, contato.getNome());
values.put(BaseDAO.CAMPO_TELEFONE, contato.getTelefone());
values.put(BaseDAO.CAMPO_EMAIL, contato.getEmail());
return database.insert(BaseDAO.TABELA_CONTATO, null, values);
}
public List lerContatos() {
Cursor c = database.rawQuery("SELECT * FROM " + BaseDAO.TABELA_CONTATO, null);
List contatos = new ArrayList();
if (c.moveToFirst()) {
while (!c.isAfterLast()) {
Contato contato = new Contato(
c.getLong(c.getColumnIndex(BaseDAO.CAMPO_ID)),
c.getString(c.getColumnIndex(BaseDAO.CAMPO_NOME)),
c.getString(c.getColumnIndex(BaseDAO.CAMPO_TELEFONE)),
c.getString(c.getColumnIndex(BaseDAO.CAMPO_EMAIL)));
contatos.add(contato);
c.moveToNext();
}
}
c.close();
return contatos;
}
public int atualizarContato(Contato contato) {
long id = contato.getId();
ContentValues values = new ContentValues();
values.put(BaseDAO.CAMPO_NOME, contato.getNome());
values.put(BaseDAO.CAMPO_TELEFONE, contato.getTelefone());
values.put(BaseDAO.CAMPO_EMAIL, contato.getEmail());
return database.update(BaseDAO.TABELA_CONTATO, values, BaseDAO.CAMPO_ID + " = " + id, null);
}
public void apagarContato(Contato contato) {
long id = contato.getId();
database.delete(BaseDAO.TABELA_CONTATO, BaseDAO.CAMPO_ID + " = " + id, null);
}
}
Feito isso, vamos atualizar a classe Main, que ficará assim:
package br.com.blogspot.androidandrekunde.tutorialsqlite;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import br.com.blogspot.androidandrekunde.dao.ContatoDAO;
import br.com.blogspot.androidandrekunde.model.Contato;
public class MainActivity extends Activity {
EditText etNome;
EditText etTelefone;
EditText etEmail;
ContatoDAO contatoDAO;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
contatoDAO = new ContatoDAO(this);
etNome = (EditText) findViewById(R.id.etNome);
etTelefone = (EditText) findViewById(R.id.etTelefone);
etEmail = (EditText) findViewById(R.id.etEmail);
Button btCancelar = (Button) findViewById(R.id.btCancelar);
Button btSalvar = (Button) findViewById(R.id.btSalvar);
btCancelar.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
limparTela();
}
});
btSalvar.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
//Variáveis
String nome = "";
String telefone = "";
String email = "";
nome = etNome.getText().toString();
telefone = etTelefone.getText().toString();
email = etEmail.getText().toString();
//Cria o contato
Contato contato = new Contato(nome, telefone, email);
//Abre a conexão com o banco de dados
contatoDAO.open();
//Salva o contato
contatoDAO.novoContato(contato);
//Fecha a conexão com o banco de dados
contatoDAO.close();
limparTela();
}
});
}
private void limparTela() {
etNome.setText("");
etTelefone.setText("");
etEmail.setText("");
}
}
Bom, com isso, o cadastro do contato já está sendo feito. No próximo post faremos a listagem dos contatos cadastrados.Clique aqui, para baixar este tutorial.
0 comentários: