SQLite is a open source relational database,it's used to perform database operation on device.It is embedded in android bydefauld. So, there is no need to perform any database setup.
There are several SQLite commands such as these are CREATE,SELECT,INSERT.UPDATE and DELETE.
Now we will learn about complete step to use SQLite Database.lets take a example of student
1.create modal class for student detail.
package com.example.model;
4.Create database manager class
23.Create Layout for adaptor view
6.Create Layout for add student detail
7. For Update screen
There are several SQLite commands such as these are CREATE,SELECT,INSERT.UPDATE and DELETE.
Now we will learn about complete step to use SQLite Database.lets take a example of student
Download Source Code
1.create modal class for student detail.
package com.example.model;
import
java.io.Serializable;
import
java.util.ArrayList;
public
class Student implements
Serializable
{
private
int roll;
private
String name,branch,phone;
private
ArrayList<StudentMarks> marks;
public
Student(int roll, String
name, String branch, String
phone) {
super();
this.roll
= roll;
this.name
= name;
this.branch
= branch;
this.phone
= phone;
}
public
Student(int roll, String name, String branch, String phone,
ArrayList<StudentMarks>
marks) {
super();
this.roll
= roll;
this.name
= name;
this.branch
= branch;
this.phone
= phone;
this.marks
= marks;
}
public
int getRoll() {
return
roll;
}
public
void setRoll(int roll) {
this.roll
= roll;
}
public
String getName() {
return
name;
}
public
void setName(String name) {
this.name
= name;
}
public
String getBranch() {
return
branch;
}
public
void setBranch(String branch) {
this.branch
= branch;
}
public
String getPhone() {
return
phone;
}
public
void setPhone(String phone) {
this.phone
= phone;
}
public
ArrayList<StudentMarks> getMarks() {
return
marks;
}
public
void setMarks(ArrayList<StudentMarks> marks) {
this.marks
= marks;
}
@Override
public
String toString() {
//
TODO Auto-generated method stub
return
name;
}
}
}
}
2. Create database helper class
package com.example.helper;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;
public class
MyDBHelper extends SQLiteOpenHelper
{
public static
final String DBNAME = "StudentDB";
public static
final int DBVER = 1;
public MyDBHelper(Context
context, String name, CursorFactory factory,
int
version) {
super(context,
name, factory, version);
//
TODO Auto-generated constructor stub
}
@Override
public void
onCreate(SQLiteDatabase db)
{
db.execSQL("create
table student (roll integer primary key,name text,branch text,phone
text)");
db.execSQL("create
table studmarks (mid integer primary key autoincrement,roll
integer,date text,marks real)");
}
@Override
public void
onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
//
TODO Auto-generated method stub
if(oldVersion==1
&& newVersion==2)
{}
if(oldVersion==1
&& newVersion==3)
{}
if(oldVersion==2
&& newVersion==3)
{}
}
}
package
com.example.manager;
import
java.util.ArrayList;
import
android.content.ContentValues;
import
android.content.Context;
import
android.database.Cursor;
import
android.database.sqlite.SQLiteDatabase;
import
com.example.helper.MyDBHelper;
import
com.example.model.Student;
public
class StudentManager
{
private
MyDBHelper helper;
private
SQLiteDatabase db;
private
Context ctx;
public
StudentManager(Context ctx)
{
this.ctx
= ctx;
helper
= new MyDBHelper(ctx, MyDBHelper.DBNAME,null, MyDBHelper.DBVER);
}
public
boolean addStudent(Student stud)
{
db
= helper.getWritableDatabase();
ContentValues
cv = new ContentValues();
cv.put("roll",stud.getRoll());
cv.put("name",stud.getName());
cv.put("branch",stud.getBranch());
cv.put("phone",stud.getPhone());
long
x = db.insert("student", null, cv);
db.close();
if(x>0)
return
true;
return
false;
}
public
ArrayList<Student> getStudents()
{
ArrayList<Student>
list = new ArrayList<Student>();
db
= helper.getReadableDatabase();
Cursor
cr = db.rawQuery("select * from student",null);
while(cr.moveToNext())
{
int
roll = cr.getInt(0);
String
name = cr.getString(1);
String
branch = cr.getString(2);
String
phone = cr.getString(3);
Student
s = new Student(roll, name, branch, phone);
list.add(s);
}
cr.close();
db.close();
return
list;
}
public
void deleteStudent(int roll)
{
db
= helper.getWritableDatabase();
db.delete("student","roll=?",new
String[]{roll+""});
db.close();
}
public
void updateStudent(Student s)
{
db
= helper.getWritableDatabase();
ContentValues
cv = new ContentValues();
cv.put("name",
s.getName());
cv.put("branch",
s.getBranch());
cv.put("phone",
s.getPhone());
db.update("student",
cv, "roll=?",new String[]{s.getRoll()+""});
db.close();
}
public
ArrayList<Student> getStudentByRoll(int roll)
{
ArrayList<Student>
s = new ArrayList<Student>();
db
= helper.getReadableDatabase();
Cursor
c = db.rawQuery("select * from student where roll="+roll,
null);
if(c.moveToNext())
{
int
r = c.getInt(0);
String
n = c.getString(1) ;
String
b = c.getString(2) ;
String
p = c.getString(3) ;
s.add(new
Student(r, n, b, p));
}
db.close();
return
s;
}
}
5.create main_Activity
package
com.example.view;
import
java.util.ArrayList;
import
android.app.AlertDialog;
import
android.app.ListActivity;
import
android.content.DialogInterface;
import
android.content.Intent;
import
android.os.Bundle;
import
android.view.Menu;
import
android.view.MenuItem;
import
android.widget.ArrayAdapter;
import
android.widget.EditText;
import
android.widget.ListView;
import
com.example.facultyapp.R;
import
com.example.manager.StudentManager;
import
com.example.model.Student;
import
com.example.model.StudentAdapter;
public
class MainActivity extends
ListActivity
{
ListView
lv;
ArrayList<Student>
studList;
StudentAdapter
sadp;
StudentManager
sm;
public
int updatepos;
public
void deleteStud(Student s)
{
studList.remove(s);
sadp.notifyDataSetChanged();
}
@Override
protected
void onCreate(Bundle
savedInstanceState)
{
super.onCreate(savedInstanceState);
sm
= new StudentManager(this);
lv
= getListView();
studList
= sm.getStudents();
sadp
= new StudentAdapter(studList, this);
lv.setAdapter(sadp);
}
@Override
public
boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main,
menu);
return
super.onCreateOptionsMenu(menu);
}
@Override
public
boolean onOptionsItemSelected(MenuItem item)
{
int
id = item.getItemId();
switch(id)
{
case
R.id.addStud:
Intent
in = new Intent(MainActivity.this,AddStudentActivity.class);
startActivityForResult(in,
11);
break;
case
R.id.searchStud:
openDialog();
break;
case
R.id.allStud:
studList.clear();
sadp.clear();
studList
= sm.getStudents();
sadp
= new StudentAdapter(studList, MainActivity.this);
lv.setAdapter(sadp);
break;
}
return
super.onOptionsItemSelected(item);
}
private
void openDialog()
{
AlertDialog.Builder
bd = new AlertDialog.Builder(MainActivity.this);
bd.setTitle("Search
Student");
final
EditText et = new EditText(MainActivity.this);
bd.setView(et);
bd.setPositiveButton("Roll",
new DialogInterface.OnClickListener()
{
@Override
public
void onClick(DialogInterface
dialog, int which) {
studList.clear();
sadp.clear();
int
roll = Integer.parseInt(et.getText().toString());
studList
= sm.getStudentByRoll(roll);
sadp
= new StudentAdapter(studList, MainActivity.this);
lv.setAdapter(sadp);
}
});
bd.setNegativeButton("Branch",
new DialogInterface.OnClickListener()
{
@Override
public
void onClick(DialogInterface
dialog, int which) {
//
TODO Auto-generated method stub
}
});
AlertDialog
dlg = bd.create();
dlg.show();
}
@Override
protected
void onActivityResult(int requestCode, int resultCode,
Intent data)
{
if(requestCode==11
&& resultCode==RESULT_OK)
{
Student
s = (Student) data.getSerializableExtra("stud");
studList.add(s);
sadp.notifyDataSetChanged();
}
if(requestCode==12
&& resultCode==RESULT_OK)
{
Student
s = (Student) data.getSerializableExtra("s");
studList.set(updatepos,
s);
sadp.notifyDataSetChanged();
}
super.onActivityResult(requestCode,
resultCode, data);
}
}
23.Create Layout for adaptor view
<?xml
version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="horizontal"
>
<TextView
android:id="@+id/nameTv"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Large
Text"
android:textAppearance="?android:attr/textAppearanceLarge"
/>
<Button
android:id="@+id/viewBT"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View"
/>
<Button
android:id="@+id/updateBT"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Update"
/>
<Button
android:id="@+id/delBT"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Delete"
/>
</LinearLayout>
45. Create Adaptor
package com.example.model;
import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.Button;
import android.widget.TextView;
import com.example.facultyapp.R;
import com.example.manager.StudentManager;
import com.example.view.MainActivity;
import com.example.view.UpdateActivity;
public
class StudentAdapter extends BaseAdapter
{
private ArrayList<Student>
list;
private Context
ctx;
public StudentAdapter(ArrayList<Student>
list, Context ctx) {
super();
this.list
= list;
this.ctx
= ctx;
}
@Override
public
int getCount() {
//
TODO Auto-generated method stub
return list.size();
}
@Override
public
Object getItem(int arg0) {
//
TODO Auto-generated method stub
return null;
}
@Override
public
long getItemId(int arg0) {
//
TODO Auto-generated method stub
return 0;
}
@Override
public
View getView(final int position, View convertView,
ViewGroup parent) {
//
LayoutInflater
inf = (LayoutInflater)
ctx.getSystemService(ctx.LAYOUT_INFLATER_SERVICE);
View
vw = inf.inflate(R.layout.studview, null);
TextView
tv = (TextView) vw.findViewById(R.id.nameTv);
Button
viewBT = (Button) vw.findViewById(R.id.viewBT);
Button
delBT = (Button) vw.findViewById(R.id.delBT);
Button
upBT = (Button) vw.findViewById(R.id.updateBT);
final
Student s = list.get(position);
upBT.setOnClickListener(new
OnClickListener()
{
@Override
public
void onClick(View v)
{
Intent
in = new Intent(ctx, UpdateActivity.class);
in.putExtra("stud",s);
MainActivity
act = (MainActivity) ctx;
act.updatepos=position;
act.startActivityForResult(in,
12);
}
});
delBT.setOnClickListener(new
OnClickListener()
{
@Override
public
void onClick(View v)
{
int
roll = s.getRoll();
StudentManager
sm = new StudentManager(ctx);
sm.deleteStudent(roll);
MainActivity
act = (MainActivity) ctx;
act.deleteStud(s);
}
});
viewBT.setOnClickListener(new
OnClickListener()
{
@Override
public
void onClick(View v)
{
AlertDialog.Builder
bd = new AlertDialog.Builder(ctx);
bd.setTitle("Student..");
TextView
tv = new TextView(ctx);
String
data = "Roll - " + s.getRoll() + "\n";
data
+= "NAme - " + s.getName() + "\n";
data
+= "Phone - " + s.getPhone() + "\n";
data
+= "Branch - " + s.getBranch() + "\n";
tv.setText(data);
bd.setView(tv);
bd.setPositiveButton("Close",new
DialogInterface.OnClickListener()
{
@Override
public
void onClick(DialogInterface dialog, int which) {
//
TODO Auto-generated method stub
}
});
AlertDialog
dlg = bd.create();
dlg.show();
}
});
tv.setText(s.getName());
return vw;
}
public
void clear() {
//
TODO Auto-generated method stub
list.clear();
}
}
6.Create Layout for add student detail
<?xml
version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:id="@+id/rollET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Roll
Number"
android:layout_marginTop="10dp"
>
<requestFocus
/>
</EditText>
<EditText
android:id="@+id/nameET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Student
Name"
android:layout_marginTop="10dp"
/>
<Spinner
android:id="@+id/branchSP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"/>
<EditText
android:id="@+id/phoneET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:layout_marginTop="10dp"
android:hint="Phone
Number" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<Button
android:id="@+id/saveBT"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Save"
/>
<Button
android:id="@+id/canBT"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Cancel"
/>
</LinearLayout>
</LinearLayout>
6. insert New DATA
package com.example.view;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import com.example.facultyapp.R;
import com.example.manager.StudentManager;
import com.example.model.Student;
public class AddStudentActivity extends Activity
{
EditText
rollET,nameET,phoneET;
Spinner
branchSP;
Button
saveBT,canBT;
String
[] branch =
{
"CS","EC","IT","ME","CE","EE"
};
ArrayAdapter<String>
branchadp;
StudentManager
sm;
@Override
protected
void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.addstud);
rollET
= (EditText) findViewById(R.id.rollET);
nameET
= (EditText) findViewById(R.id.nameET);
phoneET
= (EditText) findViewById(R.id.phoneET);
branchSP
= (Spinner) findViewById(R.id.branchSP);
saveBT
= (Button) findViewById(R.id.saveBT);
canBT
= (Button) findViewById(R.id.canBT);
sm
= new StudentManager(this);
branchadp
= new
ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,branch);
branchSP.setAdapter(branchadp);
saveBT.setOnClickListener(new
OnClickListener()
{
@Override
public void onClick(View
v)
{
int
roll = Integer.parseInt(rollET.getText().toString());
String
name = nameET.getText().toString();
String
branch = (String) branchSP.getSelectedItem();
String
phone = phoneET.getText().toString();
Student
stud = new Student(roll, name, branch, phone);
boolean check
= sm.addStudent(stud);
if(check)
{
Toast.makeText(AddStudentActivity.this,
"Record Insert !",2).show();
Intent
in = new Intent();
in.putExtra("stud",
stud);
setResult(RESULT_OK,
in);
}
else
Toast.makeText(AddStudentActivity.this,
"Record Insert Failed !",2).show();
finish();
}
});
canBT.setOnClickListener(new
OnClickListener()
{
@Override
public void onClick(View
v) {
//
TODO Auto-generated method stub
finish();
}
});
}
}
7.Create Layout for Update Student Detail
<?xml
version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>
<EditText
android:id="@+id/rollET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Roll
Number"
android:layout_marginTop="10dp"
android:editable="false"
>
<requestFocus
/>
</EditText>
<EditText
android:id="@+id/nameET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:hint="Student
Name"
android:layout_marginTop="10dp"
/>
<Spinner
android:id="@+id/branchSP"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"/>
<EditText
android:id="@+id/phoneET"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:ems="10"
android:layout_marginTop="10dp"
android:hint="Phone
Number" />
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp">
<Button
android:id="@+id/updateBT"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Update"
/>
<Button
android:id="@+id/canBT"
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Cancel"
/>
</LinearLayout>
</LinearLayout>
7. For Update screen
package com.example.view;
import
android.app.Activity;
import
android.content.Intent;
import
android.os.Bundle;
import
android.view.View;
import
android.view.View.OnClickListener;
import
android.widget.ArrayAdapter;
import
android.widget.Button;
import
android.widget.EditText;
import
android.widget.Spinner;
import
com.example.facultyapp.R;
import
com.example.manager.StudentManager;
import
com.example.model.Student;
public
class UpdateActivity extends
Activity {
EditText
rollET,nameET,phoneET;
Spinner
branchSP;
Button
upBT,canBT;
String
[] branch =
{
"CS","EC","IT","ME","CE","EE"
};
ArrayAdapter<String>
branchadp;
StudentManager
sm;
@Override
protected
void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.updatestud);
rollET
= (EditText) findViewById(R.id.rollET);
nameET
= (EditText) findViewById(R.id.nameET);
phoneET
= (EditText) findViewById(R.id.phoneET);
branchSP
= (Spinner) findViewById(R.id.branchSP);
upBT
= (Button) findViewById(R.id.updateBT);
canBT
= (Button) findViewById(R.id.canBT);
sm
= new StudentManager(this);
branchadp
= new
ArrayAdapter<String>(this,android.R.layout.simple_spinner_item,branch);
branchSP.setAdapter(branchadp);
Intent
in = getIntent();
Student
s = (Student) in.getSerializableExtra("stud");
rollET.setText(s.getRoll()+"");
nameET.setText(s.getName());
phoneET.setText(s.getPhone());
String
b = s.getBranch();
for(int
i=0;i<branch.length;i++)
{
if(b.equals(branch[i]))
{
branchSP.setSelection(i);
break;
}
}
canBT.setOnClickListener(new
OnClickListener()
{
@Override
public
void onClick(View v) {
//
TODO Auto-generated method stub
finish();
}
});
upBT.setOnClickListener(new
OnClickListener()
{
@Override
public
void onClick(View v)
{
int
roll = Integer.parseInt(rollET.getText().toString());
String
name = nameET.getText().toString();
String
branch = (String) branchSP.getSelectedItem();
String
phone = phoneET.getText().toString();
Student
s = new Student(roll, name, branch, phone);
sm.updateStudent(s);
Intent
in = new Intent();
in.putExtra("s",s);
setResult(RESULT_OK,
in);
finish();
}
});
}
}