Advertisement
Guest User

Gay do chico

a guest
Jan 12th, 2016
112
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.62 KB | None | 0 0
  1. package pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager;
  2.  
  3. import android.content.ContentValues;
  4. import android.content.Context;
  5. import android.database.Cursor;
  6. import android.database.sqlite.SQLiteDatabase;
  7. import android.database.sqlite.SQLiteOpenHelper;
  8. import android.util.Log;
  9.  
  10. import java.util.LinkedList;
  11. import java.util.List;
  12.  
  13. import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Data;
  14. import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Duracao;
  15. import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Operacao;
  16. import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.TipoDuracao;
  17. import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.TipoFrequencia;
  18. import pt.ipleiria.tpsi.cet.filipe.santos.rben.carmanager.model.Veiculo;
  19.  
  20.  
  21. /**
  22. * Created by Rúben on 28/12/2015.
  23. */
  24. public class Database extends SQLiteOpenHelper{
  25. private static final String DB_NAME="CarManager.db";
  26. private static final int DB_VERSION=2;
  27.  
  28.  
  29.  
  30.  
  31. private static class UsersTable{
  32. //Nome da tabela
  33. public static final String NAME="Users";
  34.  
  35. //Nome dos campos da tabela
  36. public static final String ID="_id";
  37. public static final String USER_NAME="name";
  38. public static final String USERNAME="username";
  39. public static final String PASSWORD="password";
  40.  
  41. public static final String[] ALL={ID, USER_NAME, USERNAME, PASSWORD};
  42.  
  43. public static final String CREATE_COMMAND = "create table "+NAME+" ("+
  44. ID+" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "+
  45. USER_NAME+" VARCHAR, "+
  46. USERNAME+" VARCHAR, "+
  47. PASSWORD+" VARCHAR )";
  48.  
  49. public static final String DELETE_COMMAND="DROP TABLE "+ NAME;
  50.  
  51. }
  52.  
  53. private static class VeiculosTable{
  54. //Nome da tabela
  55. public static final String NAME="Veiculos";
  56.  
  57. //Nome dos campos da tabela
  58. public static final String ID="_id";
  59. public static final String NOME="nome";
  60. public static final String MARCA="marca";
  61. public static final String MODELO="modelo";
  62. public static final String MATRICULA="matricula";
  63. public static final String DATAMATRICULA="dataMatricula";
  64.  
  65.  
  66. public static final String[] ALL={ID, NOME, MARCA, MODELO, MATRICULA, DATAMATRICULA};
  67.  
  68. public static final String CREATE_COMMAND = "create table "+NAME+" ("+
  69. ID+" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "+
  70. NOME+" VARCHAR, "+
  71. MARCA+" VARCHAR, "+
  72. MODELO+" VARCHAR, "+
  73. MATRICULA+" VARCHAR, "+
  74. DATAMATRICULA+" VARCHAR )";
  75.  
  76. public static final String DELETE_COMMAND="DROP TABLE "+ NAME;
  77. }
  78.  
  79. public static class OperacoesTable{
  80. //Nome da tabela
  81. public static final String TABLE_NAME="Operacaoes";
  82. //Campos
  83. public static final String ID="_id";
  84. public static final String IDVEICULO="idveiculo";
  85. public static final String NOME="nome";
  86. public static final String PRECO="preco";
  87. public static final String DATA="data";
  88. public static final String KILOMETRAGEM="kilometragem";
  89. public static final String FREQUENCIA="frequencia";
  90. public static final String KILOMETRAGEMREPETICAO="kilometragemrepeticao";
  91. public static final String DURACAOQTD="duracaoquantidade";
  92. public static final String DURACAOTIPO="duracaotipo";
  93. public static final String REPETIDA="repetida";
  94.  
  95. //Select *
  96. public static final String[] ALL={ID, IDVEICULO, NOME,PRECO,DATA,FREQUENCIA,KILOMETRAGEMREPETICAO,DURACAOQTD, DURACAOTIPO,REPETIDA};
  97.  
  98. //Criar tabela
  99. public static final String CREATE_COMMAND="create table "+TABLE_NAME+ " ("+
  100. ID+" INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, "+
  101. IDVEICULO+" INTEGER NOT NULL, "+
  102. NOME+" VARCHAR, "+
  103. PRECO+" DOUBLE, "+
  104. DATA+" VARCHAR, "+
  105. KILOMETRAGEM+" LONG, "+
  106. FREQUENCIA+" INTEGER, "+
  107. KILOMETRAGEMREPETICAO+" LONG, "+
  108. DURACAOQTD+" INTEGER, "+
  109. DURACAOTIPO+ " INTEGER, "+
  110. REPETIDA+" BOOLEAN)";
  111.  
  112. //Eliminar tabela
  113. public static final String DELETE_COMMAND="DROP TABLE "+TABLE_NAME;
  114.  
  115. }
  116.  
  117. public Database(Context context) {
  118. super(context, DB_NAME, null, DB_VERSION);
  119. }
  120.  
  121. @Override
  122. public void onCreate(SQLiteDatabase db) {
  123. db.execSQL(UsersTable.CREATE_COMMAND);
  124. Log.d("BASE DE DADOS", "Tabela Users Criada");
  125. db.execSQL(VeiculosTable.CREATE_COMMAND);
  126. Log.d("BASE DE DADOS", "Tabela Veiculos Criada");
  127. db.execSQL(OperacoesTable.CREATE_COMMAND);
  128. Log.d("BASE DE DADOS", "Tabela Operacoes Criada");
  129.  
  130. }
  131.  
  132. @Override
  133. public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
  134. db.execSQL(UsersTable.DELETE_COMMAND);
  135. db.execSQL(VeiculosTable.DELETE_COMMAND);
  136. onCreate(db);
  137. }
  138.  
  139. public long addVeiculo(Veiculo veiculo){
  140.  
  141. SQLiteDatabase db = getWritableDatabase();
  142. ContentValues cv = new ContentValues();
  143. cv.put(VeiculosTable.NOME, veiculo.getNome());
  144. cv.put(VeiculosTable.MARCA, veiculo.getMarca());
  145. cv.put(VeiculosTable.MODELO, veiculo.getModelo());
  146. cv.put(VeiculosTable.MATRICULA, veiculo.getMatricula());
  147. cv.put(VeiculosTable.DATAMATRICULA, veiculo.getDataMatricula().toString());
  148.  
  149. long id = db.insert(VeiculosTable.NAME, null, cv);
  150.  
  151. veiculo.setId(id);
  152.  
  153. db.close();
  154.  
  155. return id;
  156.  
  157. }
  158.  
  159. public List<Veiculo> getAllVeiculos(){
  160. SQLiteDatabase db = getReadableDatabase();
  161.  
  162. Cursor res = db.query(VeiculosTable.NAME, VeiculosTable.ALL,
  163. null, null, null, null, null);
  164.  
  165. List<Veiculo> resultado = converterCursorParaListaVeiculos(res);
  166.  
  167. res.close();
  168. db.close();
  169.  
  170. return resultado;
  171. }
  172.  
  173. public Veiculo getVeiculoById(long id) {
  174. SQLiteDatabase db = getReadableDatabase();
  175. Veiculo veiculo = null;
  176. Cursor res = db.query(VeiculosTable.NAME, VeiculosTable.ALL,
  177. VeiculosTable.ID + "=?", new String[]{Long.toString(id)}, null, null, null);
  178.  
  179. if(res.moveToFirst()){
  180. veiculo=converterLinhaCursorParaVeiculo(res);
  181. }
  182.  
  183. res.close();
  184. db.close();
  185.  
  186. return veiculo;
  187. }
  188.  
  189. public int updateVeiculo(Veiculo veiculo) {
  190. SQLiteDatabase db = getWritableDatabase();
  191. ContentValues cv = new ContentValues();
  192. cv.put(VeiculosTable.NOME, veiculo.getNome());
  193. cv.put(VeiculosTable.MARCA, veiculo.getMarca());
  194. cv.put(VeiculosTable.MODELO, veiculo.getModelo());
  195. cv.put(VeiculosTable.MATRICULA, veiculo.getMatricula());
  196. cv.put(VeiculosTable.DATAMATRICULA, veiculo.getDataMatricula().toString());
  197.  
  198. int afetadas = db.update(VeiculosTable.NAME, cv, VeiculosTable.ID + "=?",
  199. new String[]{Long.toString(veiculo.getId())});
  200.  
  201. db.close();
  202.  
  203. return afetadas;
  204. }
  205.  
  206. public int deleteVeiculo(long id){
  207. SQLiteDatabase db = getWritableDatabase();
  208. int afetadas= db.delete(VeiculosTable.NAME, VeiculosTable.ID +"=?",
  209. new String[]{Long.toString(id)});
  210. db.close();
  211.  
  212. return afetadas;
  213. }
  214.  
  215. private List<Veiculo> converterCursorParaListaVeiculos(Cursor res) {
  216. LinkedList<Veiculo> veiculos = new LinkedList<>();
  217. if(res.moveToFirst()){
  218. do{
  219. Veiculo veiculo = converterLinhaCursorParaVeiculo(res);
  220. veiculos.add(veiculo);
  221. }while (res.moveToNext());
  222. }
  223. return veiculos;
  224. }
  225.  
  226. private Veiculo converterLinhaCursorParaVeiculo(Cursor res) {
  227. return new Veiculo(res.getLong(res.getColumnIndex(VeiculosTable.ID)),
  228. res.getString(res.getColumnIndex(VeiculosTable.NOME)),
  229. res.getString(res.getColumnIndex(VeiculosTable.MARCA)),
  230. res.getString(res.getColumnIndex(VeiculosTable.MODELO)),
  231. res.getString(res.getColumnIndex(VeiculosTable.MATRICULA)),
  232. Data.parseData(res.getString(res.getColumnIndex(VeiculosTable.DATAMATRICULA))));
  233. }
  234.  
  235. public List<Operacao> getAllOperacoes(){
  236. SQLiteDatabase db = getReadableDatabase();
  237.  
  238. Cursor res = db.query(OperacoesTable.TABLE_NAME, OperacoesTable.ALL,
  239. null, null, null, null, null);
  240.  
  241. List<Operacao> resultado = converterCursorParaListaOperacoes(res);
  242.  
  243. res.close();
  244. db.close();
  245.  
  246. return resultado;
  247. }
  248.  
  249. private List<Operacao> converterCursorParaListaOperacoes(Cursor res) {
  250. LinkedList<Operacao> operacoes = new LinkedList<>();
  251. if(res.moveToFirst()){
  252. do{
  253. Operacao operacao = converterLinhaCursorParaOperacao(res);
  254. operacoes.add(operacao);
  255. }while (res.moveToNext());
  256. }
  257. return operacoes;
  258.  
  259. }
  260.  
  261. private Operacao converterLinhaCursorParaOperacao(Cursor res) {
  262. return new Operacao(res.getLong(res.getColumnIndex(OperacoesTable.ID)),
  263. res.getLong(res.getColumnIndex(OperacoesTable.IDVEICULO)),
  264. res.getString(res.getColumnIndex(OperacoesTable.NOME)),
  265. res.getDouble(res.getColumnIndex(OperacoesTable.PRECO)),
  266. Data.parseData(res.getString(res.getColumnIndex(OperacoesTable.DATA))),
  267. res.getLong(res.getColumnIndex(OperacoesTable.KILOMETRAGEM)),
  268. getFrequencia(res,res.getColumnIndex(OperacoesTable.FREQUENCIA)),
  269. res.getLong(res.getColumnIndex(OperacoesTable.KILOMETRAGEMREPETICAO)),
  270. getDuracao(res, res.getColumnIndex(OperacoesTable.DURACAOQTD),
  271. res.getColumnIndex(OperacoesTable.DURACAOTIPO)),
  272. getBoolean(res, res.getColumnIndex(OperacoesTable.REPETIDA)));
  273. }
  274.  
  275. private boolean getBoolean(Cursor res, int columnIndex) {
  276. int bo = res.getInt(columnIndex);
  277. return bo!=0;
  278. }
  279.  
  280. private TipoFrequencia getFrequencia(Cursor res, int columnIndex) {
  281. int freq = res.getInt(columnIndex);
  282.  
  283. return TipoFrequencia.values()[freq];
  284. }
  285.  
  286. private Duracao getDuracao(Cursor res, int idxQtd, int idxTipo) {
  287. int qtd = res.getInt(idxQtd);
  288. int tipo = res.getInt(idxTipo);
  289.  
  290. return new Duracao(qtd, TipoDuracao.values()[tipo]);
  291. }
  292. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement