web-dev-qa-db-fra.com

Android Exemple SQLite

Je suis nouveau sur Android et je dois créer une application sur laquelle je dois utiliser une base de données SQLite. Je ne suis pas très bien équipé avec SQLite.

Pourriez-vous me dire quel est l'objectif et l'utilisation de la classe SQLiteOpenHelper et fournir un exemple simple de création et d'insertion de base de données?

51
Rushabh Chheda

Sqlite helper class nous aide à gérer la création de la base de données et la gestion des versions. SQLiteOpenHelper prend en charge toutes les activités de gestion de base de données. Pour l'utiliser,
1.Override onCreate(), onUpgrade() méthodes de SQLiteOpenHelper. Remplacez éventuellement la méthode onOpen ().
2.Utilisez cette sous-classe pour créer une base de données lisible ou inscriptible et utilisez les quatre méthodes d'API de SQLiteDatabase insert(), execSQL(), update(), delete() pour créer, lire, mettre à jour et supprimer des lignes de votre table.

Exemple pour créer une table MyEmployees et pour sélectionner et insérer des enregistrements:

public class MyDatabaseHelper extends SQLiteOpenHelper {

    private static final String DATABASE_NAME = "DBName";

    private static final int DATABASE_VERSION = 2;

    // Database creation sql statement
    private static final String DATABASE_CREATE = "create table MyEmployees
                                 ( _id integer primary key,name text not null);";

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

    // Method is called during creation of the database
    @Override
    public void onCreate(SQLiteDatabase database) {
        database.execSQL(DATABASE_CREATE);
    }

    // Method is called during an upgrade of the database,
    @Override
    public void onUpgrade(SQLiteDatabase database,int oldVersion,int newVersion){
        Log.w(MyDatabaseHelper.class.getName(),
                         "Upgrading database from version " + oldVersion + " to "
                         + newVersion + ", which will destroy all old data");
        database.execSQL("DROP TABLE IF EXISTS MyEmployees");
        onCreate(database);
    }
}

Maintenant, vous pouvez utiliser cette classe comme ci-dessous,

public class MyDB{  

    private MyDatabaseHelper dbHelper;  

    private SQLiteDatabase database;  

    public final static String EMP_TABLE="MyEmployees"; // name of table 

    public final static String EMP_ID="_id"; // id value for employee
    public final static String EMP_NAME="name";  // name of employee

    /** 
     * 
     * @param context 
     */  
    public MyDB(Context context){  
        dbHelper = new MyDatabaseHelper(context);  
        database = dbHelper.getWritableDatabase();  
    }


    public long createRecords(String id, String name){  
        ContentValues values = new ContentValues();  
        values.put(EMP_ID, id);  
        values.put(EMP_NAME, name);  
        return database.insert(EMP_TABLE, null, values);  
    }    

    public Cursor selectRecords() {
        String[] cols = new String[] {EMP_ID, EMP_NAME};  
        Cursor mCursor = database.query(true, EMP_TABLE,cols,null  
            , null, null, null, null, null);  
        if (mCursor != null) {  
            mCursor.moveToFirst();  
        }  
        return mCursor; // iterate to get each value.
    }
}

Vous pouvez maintenant utiliser la classe MyDB dans votre activité pour effectuer toutes les opérations de base de données. Les enregistrements de création vous aideront à insérer les valeurs de la même manière, vous pouvez avoir vos propres fonctions pour la mise à jour et la suppression.

95
Vinay

Les liens suivants peuvent vous aider

1. Android Base de données SQLite

2. Tutoriel 1

Classe d'assistance de base de données:

Une classe d'assistance pour gérer la création de la base de données et la gestion des versions.

Vous créez une sous-classe implémentant onCreate(SQLiteDatabase), onUpgrade(SQLiteDatabase, int, int) et éventuellement onOpen(SQLiteDatabase), et cette classe se charge d’ouvrir la base de données si elle existe et de la créer sinon. et en l'améliorant si nécessaire. Les transactions sont utilisées pour s'assurer que la base de données est toujours dans un état raisonnable.

Cette classe permet aux implémentations de ContentProvider de différer l’ouverture et la mise à niveau de la base de données jusqu’à la première utilisation, afin d’éviter le blocage du démarrage de l’application avec des mises à niveau longues de la base de données.

Vous devez en savoir plus sur ce lien Sqlite Helper

12
Aerrow

La classe DBHelper gère l’ouverture et la fermeture des bases de données SQLite ainsi que sa création et sa mise à jour, et un article décent sur son fonctionnement est ici . Quand j'ai commencé Android c'était très utile (cependant, j'ai été objectif-c ces derniers temps et j'ai presque tout oublié).

1
CBredlow

En utilisant la classe Helper, vous pouvez accéder à la base de données SQLite et y effectuer diverses opérations en remplaçant les méthodes onCreate () et onUpgrade ().

http://technologyguid.com/Android-sqlite-database-app-example/

1
wosimosi