Sqlite

O SQLite é um banco de dados leve e incorporado que é usado em aplicativos Android para armazenar dados localmente no dispositivo. Ele oferece uma maneira eficiente e confiável de gerenciar dados estruturados dentro dos aplicativos Android. Vamos explorar como usar o SQLite para criar, acessar e manipular bancos de dados locais em um aplicativo Android.

1. Criando um Banco de Dados SQLite Helper

Para começar, você precisa criar um SQLiteOpenHelper personalizado para gerenciar seu banco de dados. Este é um exemplo básico de como criar um banco de dados SQLite e uma tabela dentro dele:

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHelper extends SQLiteOpenHelper {
    private static final String DATABASE_NAME = "MyDatabase.db";
    private static final int DATABASE_VERSION = 1;

    private static final String CREATE_TABLE = "CREATE TABLE MyTable ("
            + "id INTEGER PRIMARY KEY AUTOINCREMENT, "
            + "name TEXT);";

    public DatabaseHelper(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }

    @Override
    public void onCreate(SQLiteDatabase db) {
        db.execSQL(CREATE_TABLE);
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        db.execSQL("DROP TABLE IF EXISTS MyTable");
        onCreate(db);
    }
}

Neste exemplo, o banco de dados é criado com um nome “MyDatabase.db” e contém uma tabela chamada “MyTable” com duas colunas: “id” e “name”.

2. Acessando e Manipulando Dados

Para acessar e manipular dados no banco de dados, você pode usar métodos CRUD (Create, Read, Update, Delete).

Inserindo Dados:

SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "John Doe");
long newRowId = db.insert("MyTable", null, values);

Lendo Dados:

SQLiteDatabase db = dbHelper.getReadableDatabase();
String[] projection = {"id", "name"};
Cursor cursor = db.query("MyTable", projection, null, null, null, null, null);

while (cursor.moveToNext()) {
    int id = cursor.getInt(cursor.getColumnIndexOrThrow("id"));
    String name = cursor.getString(cursor.getColumnIndexOrThrow("name"));
    // Faça algo com os dados lidos
}
cursor.close();

Atualizando Dados:

SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name", "Jane Smith");
int rowsAffected = db.update("MyTable", values, "id=?", new String[]{String.valueOf(id)});

Deletando Dados:

SQLiteDatabase db = dbHelper.getWritableDatabase();
int rowsDeleted = db.delete("MyTable", "id=?", new String[]{String.valueOf(id)});

3. Gerenciando a Conexão com o Banco de Dados

É importante gerenciar a conexão com o banco de dados adequadamente para evitar vazamentos de recursos. Normalmente, você deve abrir o banco de dados quando precisar acessá-lo e fechá-lo quando terminar de usar:

DatabaseHelper dbHelper = new DatabaseHelper(context);
SQLiteDatabase db = dbHelper.getWritableDatabase();
// Faça operações no banco de dados
db.close(); // Feche o banco de dados quando terminar

Ao usar o SQLite no Android, você pode criar aplicativos que armazenam e recuperam dados localmente de maneira eficaz. Lembre-se sempre de tratar exceções ao trabalhar com operações de banco de dados e de fechar a conexão com o banco de dados quando terminar de usá-lo para garantir um comportamento seguro e eficiente do seu aplicativo.