Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package br.livro.android.cap14.banco;
- import java.sql.SQLException;
- import java.util.ArrayList;
- import java.util.List;
- import br.livro.android.cap14.banco.Carro.Carros;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteQueryBuilder;
- import android.util.Log;
- public class RepositorioCarro {
- public static final String CATEGORIA = "livro";
- private static final String NOME_BANCO = "livro_android";
- public static final String NOME_TABELA = "carro";
- protected SQLiteDatabase db;
- public RepositorioCarro(Context ctx){
- db = ctx.openOrCreateDatabase(NOME_BANCO, Context.MODE_PRIVATE, null);
- }
- protected RepositorioCarro(){}
- //Salva carro, insere m novo ou atualiza
- public long salvar(Carro carro){
- long id = carro.id;
- if (id!=0){
- atualizar(carro);
- }else{
- id = inserir(carro);
- }
- return id;
- }
- //Insere um novo carro
- public long inserir(Carro carro){
- ContentValues values = new ContentValues();
- values.put(Carros.NOME, carro.nome);
- values.put(Carros.PLACA, carro.placa);
- values.put(Carros.ANO, carro.ano);
- long id = inserir(values);
- return id;
- }
- //Insere um novo Carro
- public long inserir(ContentValues valores){
- long id = db.insert(NOME_TABELA, "", valores);
- return id;
- }
- //Atualiza o banco, o id do carro é utilizado
- public int atualizar(Carro carro){
- ContentValues values = new ContentValues();
- values.put(Carros.NOME, carro.nome);
- values.put(Carros.PLACA, carro.placa);
- values.put(Carros.ANO, carro.ano);
- String _id = String.valueOf(carro.id);
- String where = Carros._ID + "=?";
- String[] whereArgs = new String[] { _id};
- int count = atualizar(values,where,whereArgs);
- return count;
- }
- //Atualiza o carro com os valores abaixo
- //A clausula where é utilizada p/ identificar o carro a ser utilizado
- public int atualizar(ContentValues valores, String where, String[] whereArgs){
- int count = db.update(NOME_TABELA, valores, where, whereArgs);
- Log.i(CATEGORIA, "Atualizou [" + count +"] registros");
- return count;
- }
- //Deleta o carro com o id fornecido
- public int deletar(long id){
- String where = Carros._ID + "=?";
- String _id = String.valueOf(id);
- String[] whereArgs = new String[]{_id};
- int count = deletar(where,whereArgs);
- return count;
- }
- //Deleta carro com os argumentos fornecidos
- public int deletar(String where, String[] whereArgs){
- int count = db.delete(NOME_TABELA, where, whereArgs);
- Log.i(CATEGORIA, "Deletou[" + count + "] registros");
- return count;
- }
- //Busca o carro pelo id
- public Carro buscarCarro(long id){
- Cursor c = db.query(true, NOME_TABELA, Carro.colunas, Carros._ID +"=" + id, null, null, null, null, null);
- if (c.getCount()>0){
- c.moveToFirst();
- Carro carro = new Carro();
- carro.id = c.getLong(0);
- carro.nome = c.getString(1);
- carro.placa = c.getString(2);
- carro.ano = c.getInt(3);
- return carro;
- }
- return null;
- }
- //Retorna um cursor com todos os carros
- public Cursor getCursor(){
- return db.query(NOME_TABELA, Carro.colunas, null, null, null, null, null, null);
- }
- public List<Carro> listarCarros(){
- Cursor c = getCursor();
- List<Carro> carros = new ArrayList<Carro>();
- if (c.moveToFirst()){
- int idxID = c.getColumnIndex(Carros._ID);
- int idxNome = c.getColumnIndex(Carros.NOME);
- int idxPlaca = c.getColumnIndex(Carros.PLACA);
- int idxAno = c.getColumnIndex(Carros.ANO);
- do{
- Carro carro = new Carro();
- carros.add(carro);
- carro.id = c.getLong(idxID);
- carro.nome = c.getString(idxNome);
- carro.placa = c.getString(idxPlaca);
- carro.ano = c.getInt(idxAno);
- }while (c.moveToNext());
- }
- return carros;
- }
- //Busca o carro pelo nome
- public Carro buscarCarroPorNome(String nome){
- Carro carro = null;
- Cursor c = db.query(NOME_TABELA, Carro.colunas, Carros.NOME + " = '" + nome + "'", null, null, null, null);
- if (c.moveToNext()){
- carro = new Carro();
- carro.id = c.getLong(0);
- carro.nome = c.getString(1);
- carro.placa = c.getString(2);
- carro.ano = c.getInt(3);
- }
- return carro;
- }
- //Busca um carro utilizabdo as configurações definidas
- //no SQLiteBuolder
- //Utilizado pelo Content Provider de carro
- public Cursor query(SQLiteQueryBuilder queryBuilder, String[] projection, String selection, String[] selectionArgs,
- String groupBy, String having, String orderBy){
- Cursor c = queryBuilder.query(this.db, projection, selection, selectionArgs, groupBy, having, orderBy);
- return c;
- }
- //Fecha o banco
- public void fechar(){
- if (db!=null){
- db.close();
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement