· 9 years ago · Dec 08, 2016, 06:24 PM
1package br.com.andrebuzzo.projetofinal_db;
2
3import android.content.Context;
4import android.database.Cursor;
5import android.database.sqlite.SQLiteDatabase;
6import android.database.sqlite.SQLiteOpenHelper;
7import android.database.sqlite.SQLiteStatement;
8
9import java.util.ArrayList;
10import java.util.List;
11
12/**
13 * Created by andre on 08/12/2016.
14 */
15
16public class DBHelper {
17
18 /*Declarando os atributos da classe*/
19
20 private static final String DATABASE_NAME = "sistemapf.db"; /*Nome do banco de dados*/
21 private static final int DATABASE_VERSION = 1; /*Versão do banco de dados*/
22 private static final String TABLE_NAME = "recebedados"; /*Nome da tabela do banco de dados*/
23
24 private Context context;
25 private SQLiteDatabase db;
26
27 /*Outros atributos necessários para a criação ao suporte para o banco de dados*/
28
29 private SQLiteStatement insertStnt;
30
31 /*Preparando a instrução SQL para que possa ser reaproveitada em qualquer ocasião*/
32 private static final String INSERT = "insert into " + TABLE_NAME + " (nome, cpf,idade, telefone, email) VALUES (?,?,?,?,?)";
33
34 /*Criando o consultor DBHelper*/
35 public DBHelper (Context context) {
36 this.context = context;
37 OpenHelper openHelper = new OpenHelper(this.context);
38 this.db = openHelper.getWritableDatabase();
39 this.insertStnt = this.db.compileStatement(INSERT);
40 }
41
42 /*Esse bloco de código será requisitado na MAIN ACTIVITY*/
43 public long insert (String nome, String cpf, String idade, String telefone, String email){
44 this.insertStnt.bindString(1, nome);
45 this.insertStnt.bindString(2, cpf);
46 this.insertStnt.bindString(3, idade);
47 this.insertStnt.bindString(4, telefone);
48 this.insertStnt.bindString(5, email);
49
50 return this.insertStnt.executeInsert();
51 }
52
53 /*Criando uma instrução para apagar os registros*/
54 public void deleteAll(){
55 this.db.delete(TABLE_NAME, null, null);
56 }
57
58 /*Criando uma instrução para recuperar as informações do banco de dados*/
59 /*A instrução retornará os dados em forma de lista*/
60
61 public List<RecebeDados> recuperaDados(){
62
63 List<RecebeDados> list = new ArrayList<RecebeDados>();
64
65 try {
66 Cursor cursor = this.db.query (TABLE_NAME, new String [] {"nome", "cpf", "idade", "telefone", "email"},
67 null, null, null ,null, null, null);
68 int contaRegistros = cursor.getCount();
69 if(contaRegistros!=0){
70 cursor.moveToFirst();
71 do{
72 RecebeDados recebeDados = new RecebeDados(cursor.getString(1),cursor.getString(2),cursor.getString(3),cursor.getString(4),cursor.getString(5));
73 list.add(recebeDados);
74 } while (cursor.moveToNext());
75 /*Aqui anteriormente estava como cursor != null e retornava erros*/
76 if(cursor == null && cursor.isClosed()){
77 cursor.close();
78 return list;
79 } else {
80 return null;
81 }
82 }
83 }
84
85 catch(Exception err){
86 return null;
87 }
88 return list;
89 }
90
91 /*Criando uma classe dentro da classe -> Denominada innner class*/
92 private static class OpenHelper extends SQLiteOpenHelper {
93
94 OpenHelper(Context context){
95 super(context, DATABASE_NAME, null, DATABASE_VERSION);
96 }
97
98 /*Implementando o método void para validar a inner class*/
99 public void onCreate(SQLiteDatabase db){
100 String sql = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (id_recebedados INTEGER PRIMARY KEY AUTO INCREMENT, nome TEXT, cpf TEXT, idade TEXT, telefone TEXT, email TEXT);";
101 db.execSQL(sql);
102 }
103
104 public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion){
105 db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
106 onCreate(db);
107 }
108 }