Request a Call back

    Android Training – Steps to Work with SQLite Database for Data Management

    SQLite is an open source database that provides a facility for storing and management of the user data in Android device. This is present in every device having Android OS and hence needs to be handled CRUD (Create, Read, Update & Delete) functionalities for data management.

    In this article, we are going to learn about the easy ways to create a table in the database, add and read data from it, upgrade the existing table data and finally delete the data.

    Now let us take an example of storing the trainee details in the database. For this here we are using the Class called Trainee to store the details. This table contains three columns – first is to store the ID of the trainee, second stores the name of the student and the last third column is used to store name of the course the trainee has joined.




     Trainee_ID Int Primary Key
     Trainee_Name Text
     Course_Name Text


    Step 1: Defining the Trainee Class

    Now initially we will define the Trainee class using the get and set methods.

    For Example:

    package com.androidhive.androidsqlite;

    public class Trainee


    //We declare the variables to be used in the class. These are the private variables.

    int _trainee_id;

    String _trainee_name;

    String _course_name;

    // Empty constructor to prevent someone from accidentally instantiating the trainee class

    public Trainee()



    // Constructor

    public Trainee(int trainee_id, String trainee_name, String course_name){

    this._ trainee_id = trainee_id;

    this._ trainee_name = trainee_name;

    this._ course_name = course_name;


    // Get & Set the Trainee ID

    public int getTraineeID()


    return this._ trainee_id;//getting ID


    public void setTraineeID(int trainee_id)


    this._ trainee_id = trainee_id;    // setting id


    // Get & Set Trainee Name

    public String getTraineeName()


    return this._ trainee_name; // getting name


    public void setTraineeName(String trainee_name)


    this._ trainee_name = trainee_name; // setting name


       // Get & Set Course Name

    public String getCourseName()


    return this._ course_name; // getting course name


    public void setCourseName(String course_name)


    this._ course_name = course_name; // setting course name




    Step 2: Defining a CustomDatabaseHandler Class to handle all the database operations

    Now we will create a class CustomDatabaseHandler that extends from the SQLiteOpenHelper class. The SQLiteOpenHelper class is used for database creation. This class will automatically create a database if it does not exist already or otherwise open the database if it exists and thus helps to implement the upgrading processes as necessary.

    As we create a subclass of SQLiteOpenHelper class we are required to redefine its methods

    on Create(SQLiteDatabase db) and onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) in the subclass. onCreate method is called for creating tables and onUpgrade method is to upgrade the table with modifications if any.

    For Example:

    public class CustomDatabaseHandler extends SQLiteOpenHelper


    private static final int DATABASE_VERSION = 1; // defining the database version is mandatory

    private static final String DATABASE_NAME = “traineeManager”; // Database Name

    private static final String TABLE_NAME = “traineeDetails”; // table name

    private static final String MAIN_TRAINEE_ID = “trainee_id”;

    private static final String MAIN_TRAINEE _NAME = “trainee_name”;

    private static final String MAIN_COURSE_NAME = “course_name”;

    public CustomDatabaseHandler(Context context) {

    super(context, DATABASE_NAME, null, DATABASE_VERSION);


    // Override onCreate method to create table

    public void onCreate(SQLiteDatabase db) {



    + MAIN_ COURSE_NAME + ” TEXT” + “)”;



    // Override onUpgrade method

    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {

    db.execSQL(“DROP TABLE IF EXISTS ” + TABLE_NAME); //drop the table if there already exists table        with this name

    onCreate(db);//Hence, create new table once again



    Step 3: Inserting Data into the Table

    Once we have created a table, our next step is to add data into the table. For this we will create a class ContentValues and hence, by passing the object of this class to insert method we will insert the data into database.

    public void addTraineeDetails(Trainee trainee)


    CustomDatabaseHandler cDbHelper = new CustomDatabaseHandler((getContext());//instantiate the subclass of SQLiteOpenHelper Class

    SQLiteDatabase db = cDbHelper.getWritableDatabase();//Setting the database in write mode to allow insertion of values

    ContentValues values = new ContentValues();

    values.put(MAIN_TRAINEE_ID, trainee.getTraineeID();//This calls the getTraineeID() method that was defined in

    values.put(MAIN_TRAINEE_NAME, trainee.getTraineeName());//This calls the getTraineeName() method that was defined in

    values.put(MAIN_COURSE_NAME, trainee.getCourseName()); //This calls the getCourseName() method that was defined in


    db.insert(TABLE_NAME, null, values);//Inserting Values into Database

    db.close(); // Closing database connection upon completion of insert task



    Step 4: Reading the Data from Database Table

    Now, we are ready to display or read the data present in the table. Following code shows how we can derive all trainee details present in the database in array list format of Trainee class type. Here we are using the if and do-while loops to extract each and every row data from the table

    public List<Trainee> getAllTraineeDetails() {// getAllTraineeDetails() will return all trainee details from database in array list format

    List<Trainee> traineeList = new ArrayList<Trainee>();

    String selectQuery = “SELECT  * FROM ” + TABLE_NAME;


    CustomDatabaseHandler cDbHelper = new CustomDatabaseHandler((getContext());

    SQLiteDatabase db = cDbHelper.getWritableDatabase();

    Cursor cursor = db.rawQuery(selectQuery, null);


    if (cursor.moveToFirst()) {//loop to derive all the values

    do {

    Trainee trainee = new Trainee();

    trainee.setTraineeID(Integer.parseInt(cursor.getString(0)));//Here the setTraineeID method that was defined in

    trainee.setTraineeName(cursor.getString(1)); //Here the setTraineeName method that was defined in

    trainee.setCourseName(cursor.getString(2)); //Here the setCourseName method that was defined in

    traineeList.add(trainee);//adding the retrieved values to the created arraylist

    } while (cursor.moveToNext());


    return traineeList;//return the list of



    Step 5: Updating the Table

    We are now updating a single trainee details in database using the updateTrainee method that takes object of the Trainee class as parameter.

    public int updateTrainee(Trainee trainee) {

    CustomDatabaseHandler cDbHelper = new CustomDatabaseHandler((getContext());//setting the database write mode

    SQLiteDatabase db = cDbHelper.getWritableDatabase();

    ContentValues values = new ContentValues();

    values.put(MAIN_TRAINEE_NAME, trainee.getTraineeName());

    values.put(MAIN_COURSE_NAME, trainee.getCourseName());

    return db.update(TABLE_NAME, values, MAIN_TRAINEE_ID + ” = ?”,

    new String[] { String.valueOf(Trainee.getTraineeID()) });


    Step 6: Deleting the Data from Table

    Finally we are deleting a single trainee details from the database using the deleteTrainee method that takes object of Trainee class as parameter.

    public void deleteTrainee(Trainee trainee) {

    CustomDatabaseHandler cDbHelper = new CustomDatabaseHandler((getContext());//setting the database write mode

    SQLiteDatabase db = cDbHelper.getWritableDatabase();

    db.delete(TABLE_NAME, MAIN_TRAINEE_ID + ” = ?”,

    new String[] { String.valueOf(Trainee.getTraineeID()) });



    Hence, by using the above mentioned steps one can perform SQLite database operations for the Android apps. This allows the developer to create a mechanism to store data in the android device database.

    Android training is the best way to learn this SQLite database activity for data storage. TOPS Technologies provides Android training on SQLite concepts to the learners so that they can get familiar with effective database handling concepts including methods to add, update and delete content from SQLite, SQLiteOpenHelper class and data types used in this database.

    Leave a Reply

    Your email address will not be published.

    Leave a Reply

    Your email address will not be published. Required fields are marked *