SQLite is an open source SQL database that stores data to a text file on a device. Android comes in with built in SQLite database implementation. SQLite supports all the relational database features. In order to access this database, you don’t need to establish any kind of connections for it like JDBC,ODBC e.t.c
Database – Package
The main package is android.database.sqlite that contains the classes to manage your own databases
Database – Creation
In order to create a database you just need to call this method openOrCreateDatabase with your database name and mode as a parameter. It returns an instance of SQLite database which you have to receive in your own object.Its syntax is given below
SQLiteDatabase mydatabase = openOrCreateDatabase(“db name”,MODE_PRIVATE,null);
Sr.No | Method & Description |
1 | openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags, DatabaseErrorHandler errorHandler)This method only opens the existing database with the appropriate flag mode. The common flags mode could be OPEN_READWRITE OPEN_READONLY |
2 | openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags)It is similar to the above method as it also opens the existing database but it does not define any handler to handle the errors of databases |
3 | openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory)It not only opens but creates the database if it does not exist. This method is equivalent to the openDatabase method. |
4 | openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory)This method is similar to the above method but it takes the File object as a path rather than a string. It is equivalent to file.getPath() |
Database – Insertion
We can create tables or insert data into tables using the execSQL method defined in SQLiteDatabase class. Its syntax is given below
mydatabase.execSQL(“CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);”);
mydatabase.execSQL(“INSERT INTO TutorialsPoint VALUES(‘admin’,’admin’);”);
This will insert some values into our table in our database. Another method that also does the same job but take some additional parameter is given below
Sr.No | Method & Description |
1 | execSQL(String sql, Object[] bindArgs)This method not only insert data , but also used to update or modify already existing data in database using bind arguments |
Database – Fetching
We can retrieve anything from the database using an object of the Cursor class. We will call a method of this class called rawQuery and it will return a resultset with the cursor pointing to the table. We can move the cursor forward and retrieve the data.
Cursor resultSet = mydatbase.rawQuery(“Select * from TutorialsPoint”,null);
resultSet.moveToFirst();
String username = resultSet.getString(0);
String password = resultSet.getString(1);
There are other functions available in the Cursor class that allow us to effectively retrieve the data. That includes
Sr.No | Method & Description |
1 | getColumnCount()This method returns the total number of columns of the table. |
2 | getColumnIndex(String columnName)This method returns the index number of a column by specifying the name of the column |
3 | getColumnName(int columnIndex)This method returns the name of the column by specifying the index of the column |
4 | getColumnNames()This method returns the array of all the column names of the table. |
5 | getCount()This method returns the total number of rows in the cursor |
6 | getPosition()This method returns the current position of the cursor in the table |
7 | isClosed()This method returns true if the cursor is closed and return false otherwise |
Database – Helper class
For managing all the operations related to the database , a helper class has been given and is called SQLiteOpenHelper. It automatically manages the creation and update of the database. Its syntax is given below
public class DBHelper extends SQLiteOpenHelper {
public DBHelper(){
super(context,DATABASE_NAME,null,1);
}
public void onCreate(SQLiteDatabase db) {}
public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {}
}