Criando um banco de dados SQLite com Android

O SQLite é um mecanismo de banco de dados sem-servidor de código aberto. Suporta transações e não requer nenhuma configuração. Ele permite adicionar armazenamento de dados poderoso para aplicações móveis.

Criando e conectando a um banco de dados

Importe a classe android.database.sqlite.SQLiteDatabase em sua aplicação. Use o metódo openOrCreateDatabase() para criar ou conectar a seu banco de dados. Abaixo segue um código exemplo:

package example.SQLiteTest;

import android.app.Activity;
import android.os.Bundle;
import android.database.sqlite.SQLiteDatabase;

public class SQLiteTest extends Activity {
	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		SQLiteDatabase db;
		db = openOrCreateDatabase("TestData.db",SQLiteDatabase.CREATE_IF_NECESSARY,null);
	}
}

Execute o código acima, para criar um banco de dados chamado TestData, que será armazenado em:

/data/data/[application package name]/databases.

O status e porta do emulador pode ser encontrado executando o seguinte comando:

[android-sdk-path]\tools>adb devices

Criando tabelas

O metódo execSQL() é usado para executar comandos SQL no seu banco de dados.

Antes de criar tabelas, algumas propriedades devem ser configuradas usando os seguintes metódos:

setVersion(), setLocale(), e setLockingEnabled().

Anexe ao código abaixo ao nosso exemplo para criar as tabelas (tbl_countries e tbl_states).

db.setVersion(1);
db.setLocale(Locale.getDefault());
db.setLockingEnabled(true);
final String CREATE_TABLE_COUNTRIES = "CREATE TABLE tbl_countries (" + "id INTEGER PRIMARY KEY AUTOINCREMENT," + "country_name TEXT);";
final String CREATE_TABLE_STATES = "CREATE TABLE tbl_states (" + "id INTEGER PRIMARY KEY AUTOINCREMENT," + "state_name TEXT);";
db.execSQL(CREATE_TABLE_COUNTRIES);
db.execSQL(CREATE_TABLE_STATES);

Inserindo Registros

Importe a classe Android android.content.ContentValues e use para asua instância para criar uma série de campos de tabela cujos dados  serão passados por um metódo insert().

ContentValues values = new ContentValues();
values.put("country_name", "India");
db.insert("tbl_countries", null, values);
sqlite> select * from tbl_countries;
select * from tbl_countries;
1|India

Fonte: http://sree.cc/google/android/creating-sqlite-database-tables-in-android

 

  • nao testei ainda mas com certeza vai ajudar muito para quem esta iniciando.

  • Nicole Sigaud

    Kleber, gostei bastante desse tutorial! Existe uma maneira de salvar o meu banco de dados em um endereço que não seja “/data/data/[application package name]/databases”? Eu gostaria de criar um pequeno aplicativo que salvasse o db dentro de um SDcard externo, porque o tablet de que disponho tem pouca capacidade nas duas partições.

    • Precisaria pesquisar mais, mais tenho quase certeza que não: possivelmente por motivos de segurança, o Android deve restringir onde os aplicativos salvam coisas. Tente alterar a linha ‘openOrCreateDatabase(“TestData.db”,SQLiteDatabase.CREATE_IF_NECESSARY,null)’ e onde é especificado o nome o banco, tento por um caminho completo para alguma pasta do SDcard.