SQLite Database Connectivity in Android
SQLite Database Connectivity in Android
SQLite Database Connectivity in Android
SQLite database, create database, create table, insert records in tables and display records from table in an Android application. Page Views : 757 Downloads : 0 Rating : Rate it Level : Beginner Print Post a comment Similar Articles Share Email to a friend Bookmark Author's other articles inShare Sponsored by Become a Sponsor Similar ArticlesMost ReadTop RatedLatest Using SQLite with .Net Getting started with SQLite Database connectivity using silverlight Oracle: JDBC (Java Database Connectivity) Working With Text Controls in Mono for Android More... Sponsored by Become a Sponsor
Tag Cloud Android android application Android articles Android LinearLayout Android o.s android programming Android Programming using C# Android ScrollView Android ScrollView in VS2010 Android tutorials AutoCompleteTextView in Android DroidDraw Google Android GridView in Android LinearLayout LinearLayout in Android Mobile Mobile Development Mono For Android MonoAndroid MultiCompleteTextView in Android ScrollView in Android VS 20101 Widgets windows android Latest Jobs dot net developer MCA .NET Developer Needed
.NET Developer Needed .Net Developer Senior .Net Software Engineer Senior Software Engineer Senior WPF Developer Software Developer Application Developer More ... Latest Interview Questions What is lazy loading? What is Replication in MS SQL. ? Type of Replication.? What are Value types and Reference types ? What is boxing and unboxing ? What are different types that a variable can be defined and their scopes ? What is Strong name ? Different types of authentication modes in .NET Framework ? What is an Assembly ? What is the difference between Metadata and Menifest ? What is delay signing? More ... Introduction In this article, we will see how to create a SQLite database in an Android application. We will also see how to add records to the database and read and display in an application. SQLiteDatabase In Android, the SQLiteDatabase namespace defines the functionality to connect and manage a database. It provides functionality to create, delete, manage and display database content. Create a Database Simple steps to create a database and handle are as following. Create "SQLiteDatabase" object. Open or Create database and create connection. Perform insert, update or delete operation. Create Cursor to display data from table of database. Close the database connectivity. Following tutorial helps you to create database and insert records in it. Step 1: Instantiate "SQLiteDatabase" object
SQLiteDatabase db; Before you can use the above object, you must import the android.database.sqlite.SQLiteDatabase namespace in your application. db=openOrCreateDatabase(String path, int mode, SQLiteDatabase.CursorFactory factory) This method is used to create/open database. As the name suggests, it will open a database connection if it is already there, otherwise it will create a new one. Example, db=openOrCreateDatabase("XYZ_Database",SQLiteDatabase.CREATE_IF_NECESSA RY,null); Arguments: String path Name of the database Int mode operating mode. Use 0 or "MODE_PRIVATE" for the default operation, or "CREATE_IF_NECESSARY" if you like to give option that "if database is not there, create it" CursorFactory factory An optional factory class that is called to instantiate a cursor when query is called Step 2: Execute DDL command db.execSQL(String sql) throws SQLException This command is used to execute single SQL statement which doesn't return any data means other than SELECT or any other. db.execSQL("Create Table Temp (id Integer, name Text)"); In the above example, it takes "CREATE TABLE" statement of SQL. This will create a table of "Integer" & "Text" fields. Try and Catch block is require while performing this operation. An exception that indicates there was an error with SQL parsing or execution. Step 3: Create object of "ContentValues" and Initiate it. ContentValues values=new ContentValues();
This class is used to store a set of values. We can also say, it will map ColumnName and relavent ColumnValue. values.put("id", eid.getText().toString()); values.put("name", ename.getText().toString()); String Key Name of field as in table. Ex. "id", "name" String Value Value to be inserted. Step 4: Perform Insert Statement. insert(String table, String nullColumnHack, ContentValues values) String table Name of table related to database. String nullColumnHack If not set to null, the nullColumnHack parameter provides the name of nullable column name to explicitly insert a NULL into in the case where your values is empty. ContentValues values This map contains the initial column values for the row. This method returns a long. The row ID of the newly inserted row, or -1 if an error occurred. Example, db.insert("temp", null, values); Step 5: Create Cursor This interface provides random read-write access to the result set returned by a database query. Cursor c=db.rawQuery(String sql, String[] selectionArgs) Strign sql The SQL query String []selectionArgs You may include ?s in where clause in the query, which will be replaced by the values from selectionArgs. The values will be bound as Strings. Example, Cursor c=db.rawQuery("SELECT * FROM temp",null); Methods
moveToFirst Moves cursor pointer at first position of result set moveToNext Moves cursor pointer next to current position. isAfterLast Returs false, if cursor pointer is not at last position of result set. Example, c.moveToFirst(); while(!c.isAfterLast()) { //statement c.moveToNext(); } Step 6: Close Cursor and Close Database connectivity It is very important to release our connections before closing our activity. It is advisable to release the Database connectivity in "onStop" method. And Cursor connectivity after use it. DatabaseDemoActivity.java package com.DataBaseDemo; import android.app.Activity; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class DataBaseDemoActivity extends Activity { /** Called when the activity is first created. */ SQLiteDatabase db; Button btnInsert; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); btnInsert=(Button)findViewById(R.id.button1); try{
db=openOrCreateDatabase("StudentDB",SQLiteDatabase.CREATE_IF_NECESSAR Y,null); db.execSQL("Create Table Temp(id integer,name text)"); }catch(SQLException e) { } btnInsert.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stub EditText eid=(EditText) findViewById(R.id.editText1); EditText ename=(EditText)findViewById(R.id.editText2); ContentValues values=new ContentValues(); values.put("id", eid.getText().toString()); values.put("name", ename.getText().toString()); if((db.insert("temp", null, values))!=-1) { Toast.makeText(DataBaseDemoActivity.this, "Record Successfully Inserted", 2000).show(); } else { Toast.makeText(DataBaseDemoActivity.this, "Insert Error", 2000).show(); } eid.setText(""); ename.setText(""); Cursor c=db.rawQuery("SELECT * FROM temp",null); c.moveToFirst(); while(!c.isAfterLast()) { Toast.makeText(DataBaseDemoActivity.this,c.getString(0)+ " "+c.getString(1),1000).show(); c.moveToNext(); } c.close(); } }); } @Override protected void onStop() { // TODO Auto-generated method stub db.close(); super.onStop(); } }
Note: If you want to see where your database stored? Follow below instruction. Start Your Emulator ( It is necessary to start Emulator to see File Explorer content) Open "File Explorer"
Data -> Data -> find your "package" -> databases -> "database" Summary SQLiteDatabase provide so much functionality to create and manage databases. In this article, we learned how to create a new database, connect to it and read and display data. Resources Here are some useful related resources: Working With Text Controls in Mono for Android RelativeLayout in Android Using Visual Studio 2010 Passing Data From One Activity to Another Activity in Android Working with Tab Layout in Mono For Android