Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager;
- import android.content.ContentValues;
- import android.content.Context;
- import android.database.Cursor;
- import android.database.sqlite.SQLiteDatabase;
- import android.database.sqlite.SQLiteOpenHelper;
- import android.util.Log;
- import java.util.LinkedList;
- import java.util.List;
- import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Data;
- import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Duracao;
- import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Operacao;
- import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.TipoDuracao;
- import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.TipoFrequencia;
- import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Veiculo;
- /**
- * Created by Rúben on 28/12/2015.
- */
- public class Database extends SQLiteOpenHelper{
- private static final String DB_NAME="CarManager.db";
- private static final int DB_VERSION=2;
- private static class UsersTable{
- //Nome da tabela
- public static final String NAME="Users";
- //Nome dos campos da tabela
- public static final String ID="_id";
- public static final String USER_NAME="name";
- public static final String USERNAME="username";
- public static final String PASSWORD="password";
- public static final String[] ALL={ID, USER_NAME, USERNAME, PASSWORD};
- public static final String CREATE_COMMAND = "create table "+NAME+" ("+
- ID+" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "+
- USER_NAME+" VARCHAR, "+
- USERNAME+" VARCHAR, "+
- PASSWORD+" VARCHAR )";
- public static final String DELETE_COMMAND="DROP TABLE "+ NAME;
- }
- private static class VeiculosTable{
- //Nome da tabela
- public static final String NAME="Veiculos";
- //Nome dos campos da tabela
- public static final String ID="_id";
- public static final String NOME="nome";
- public static final String MARCA="marca";
- public static final String MODELO="modelo";
- public static final String MATRICULA="matricula";
- public static final String DATAMATRICULA="dataMatricula";
- public static final String[] ALL={ID, NOME, MARCA, MODELO, MATRICULA, DATAMATRICULA};
- public static final String CREATE_COMMAND = "create table "+NAME+" ("+
- ID+" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "+
- NOME+" VARCHAR, "+
- MARCA+" VARCHAR, "+
- MODELO+" VARCHAR, "+
- MATRICULA+" VARCHAR, "+
- DATAMATRICULA+" VARCHAR )";
- public static final String DELETE_COMMAND="DROP TABLE "+ NAME;
- }
- public static class OperacoesTable{
- //Nome da tabela
- public static final String TABLE_NAME="Operacaoes";
- //Campos
- public static final String ID="_id";
- public static final String IDVEICULO="idveiculo";
- public static final String NOME="nome";
- public static final String PRECO="preco";
- public static final String DATA="data";
- public static final String KILOMETRAGEM="kilometragem";
- public static final String FREQUENCIA="frequencia";
- public static final String KILOMETRAGEMREPETICAO="kilometragemrepeticao";
- public static final String DURACAOQTD="duracaoquantidade";
- public static final String DURACAOTIPO="duracaotipo";
- public static final String REPETIDA="repetida";
- //Select *
- public static final String[] ALL={ID, IDVEICULO, NOME,PRECO,DATA,FREQUENCIA,KILOMETRAGEMREPETICAO,DURACAOQTD, DURACAOTIPO,REPETIDA};
- //Criar tabela
- public static final String CREATE_COMMAND="create table "+TABLE_NAME+ " ("+
- ID+" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "+
- IDVEICULO+" INTEGER NOT NULL, "+
- NOME+" VARCHAR, "+
- PRECO+" DOUBLE, "+
- DATA+" VARCHAR, "+
- KILOMETRAGEM+" LONG, "+
- FREQUENCIA+" INTEGER, "+
- KILOMETRAGEMREPETICAO+" LONG, "+
- DURACAOQTD+" INTEGER, "+
- DURACAOTIPO+ " INTEGER, "+
- REPETIDA+" BOOLEAN)";
- //Eliminar tabela
- public static final String DELETE_COMMAND="DROP TABLE "+TABLE_NAME;
- }
- public Database(Context context) {
- super(context, DB_NAME, null, DB_VERSION);
- }
- @Override
- public void onCreate(SQLiteDatabase db) {
- db.execSQL(UsersTable.CREATE_COMMAND);
- Log.d("BASE DE DADOS", "Tabela Users Criada");
- db.execSQL(VeiculosTable.CREATE_COMMAND);
- Log.d("BASE DE DADOS", "Tabela Veiculos Criada");
- db.execSQL(OperacoesTable.CREATE_COMMAND);
- Log.d("BASE DE DADOS", "Tabela Operacoes Criada");
- }
- @Override
- public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
- db.execSQL(UsersTable.DELETE_COMMAND);
- db.execSQL(VeiculosTable.DELETE_COMMAND);
- onCreate(db);
- }
- public long addVeiculo(Veiculo veiculo){
- SQLiteDatabase db = getWritableDatabase();
- ContentValues cv = new ContentValues();
- cv.put(VeiculosTable.NOME, veiculo.getNome());
- cv.put(VeiculosTable.MARCA, veiculo.getMarca());
- cv.put(VeiculosTable.MODELO, veiculo.getModelo());
- cv.put(VeiculosTable.MATRICULA, veiculo.getMatricula());
- cv.put(VeiculosTable.DATAMATRICULA, veiculo.getDataMatricula().toString());
- long id = db.insert(VeiculosTable.NAME, null, cv);
- veiculo.setId(id);
- db.close();
- return id;
- }
- public List<Veiculo> getAllVeiculos(){
- SQLiteDatabase db = getReadableDatabase();
- Cursor res = db.query(VeiculosTable.NAME, VeiculosTable.ALL,
- null, null, null, null, null);
- List<Veiculo> resultado = converterCursorParaListaVeiculos(res);
- res.close();
- db.close();
- return resultado;
- }
- public Veiculo getVeiculoById(long id) {
- SQLiteDatabase db = getReadableDatabase();
- Veiculo veiculo = null;
- Cursor res = db.query(VeiculosTable.NAME, VeiculosTable.ALL,
- VeiculosTable.ID + "=?", new String[]{Long.toString(id)}, null, null, null);
- if(res.moveToFirst()){
- veiculo=converterLinhaCursorParaVeiculo(res);
- }
- res.close();
- db.close();
- return veiculo;
- }
- public int updateVeiculo(Veiculo veiculo) {
- SQLiteDatabase db = getWritableDatabase();
- ContentValues cv = new ContentValues();
- cv.put(VeiculosTable.NOME, veiculo.getNome());
- cv.put(VeiculosTable.MARCA, veiculo.getMarca());
- cv.put(VeiculosTable.MODELO, veiculo.getModelo());
- cv.put(VeiculosTable.MATRICULA, veiculo.getMatricula());
- cv.put(VeiculosTable.DATAMATRICULA, veiculo.getDataMatricula().toString());
- int afetadas = db.update(VeiculosTable.NAME, cv, VeiculosTable.ID + "=?",
- new String[]{Long.toString(veiculo.getId())});
- db.close();
- return afetadas;
- }
- public int deleteVeiculo(long id){
- SQLiteDatabase db = getWritableDatabase();
- int afetadas= db.delete(VeiculosTable.NAME, VeiculosTable.ID +"=?",
- new String[]{Long.toString(id)});
- db.close();
- return afetadas;
- }
- private List<Veiculo> converterCursorParaListaVeiculos(Cursor res) {
- LinkedList<Veiculo> veiculos = new LinkedList<>();
- if(res.moveToFirst()){
- do{
- Veiculo veiculo = converterLinhaCursorParaVeiculo(res);
- veiculos.add(veiculo);
- }while (res.moveToNext());
- }
- return veiculos;
- }
- private Veiculo converterLinhaCursorParaVeiculo(Cursor res) {
- return new Veiculo(res.getLong(res.getColumnIndex(VeiculosTable.ID)),
- res.getString(res.getColumnIndex(VeiculosTable.NOME)),
- res.getString(res.getColumnIndex(VeiculosTable.MARCA)),
- res.getString(res.getColumnIndex(VeiculosTable.MODELO)),
- res.getString(res.getColumnIndex(VeiculosTable.MATRICULA)),
- Data.parseData(res.getString(res.getColumnIndex(VeiculosTable.DATAMATRICULA))));
- }
- public List<Operacao> getAllOperacoes(){
- SQLiteDatabase db = getReadableDatabase();
- Cursor res = db.query(OperacoesTable.TABLE_NAME, OperacoesTable.ALL,
- null, null, null, null, null);
- List<Operacao> resultado = converterCursorParaListaOperacoes(res);
- res.close();
- db.close();
- return resultado;
- }
- private List<Operacao> converterCursorParaListaOperacoes(Cursor res) {
- LinkedList<Operacao> operacoes = new LinkedList<>();
- if(res.moveToFirst()){
- do{
- Operacao operacao = converterLinhaCursorParaOperacao(res);
- operacoes.add(operacao);
- }while (res.moveToNext());
- }
- return operacoes;
- }
- private Operacao converterLinhaCursorParaOperacao(Cursor res) {
- return new Operacao(res.getLong(res.getColumnIndex(OperacoesTable.ID)),
- res.getLong(res.getColumnIndex(OperacoesTable.IDVEICULO)),
- res.getString(res.getColumnIndex(OperacoesTable.NOME)),
- res.getDouble(res.getColumnIndex(OperacoesTable.PRECO)),
- Data.parseData(res.getString(res.getColumnIndex(OperacoesTable.DATA))),
- res.getLong(res.getColumnIndex(OperacoesTable.KILOMETRAGEM)),
- getFrequencia(res,res.getColumnIndex(OperacoesTable.FREQUENCIA)),
- res.getLong(res.getColumnIndex(OperacoesTable.KILOMETRAGEMREPETICAO)),
- getDuracao(res, res.getColumnIndex(OperacoesTable.DURACAOQTD),
- res.getColumnIndex(OperacoesTable.DURACAOTIPO)),
- getBoolean(res, res.getColumnIndex(OperacoesTable.REPETIDA)));
- }
- private boolean getBoolean(Cursor res, int columnIndex) {
- int bo = res.getInt(columnIndex);
- return bo!=0;
- }
- private TipoFrequencia getFrequencia(Cursor res, int columnIndex) {
- int freq = res.getInt(columnIndex);
- return TipoFrequencia.values()[freq];
- }
- private Duracao getDuracao(Cursor res, int idxQtd, int idxTipo) {
- int qtd = res.getInt(idxQtd);
- int tipo = res.getInt(idxTipo);
- return new Duracao(qtd, TipoDuracao.values()[tipo]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement