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 ListlerContatos() { 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: