Javascript Ajax Android Html PHP Example Quiz New MORE
Need a Website Or Web Application Or Any Help.Contact Us: +91 9437911966 (Whatsapp) Note: Paid Service

How to Insert and Update data in SQLite using android


In this example we will discuss how to insert and update data in SQLite using android.

activity_main.xml


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity"
    android:orientation="vertical">

    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Name"
        android:id="@+id/nameEdit"
        android:layout_margin="10dp"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="Age"
        android:id="@+id/ageEdit"
        android:layout_margin="10dp"
        android:inputType="number"/>
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="City"
        android:id="@+id/cityEdit"
        android:layout_margin="10dp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:text="Submit"
        android:id="@+id/submitBtn"/>

<ListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/listViewId"/>

</LinearLayout>

DBHelper.java


package com.example.sqliteexample;
import android.app.DownloadManager;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import androidx.annotation.Nullable;
import java.util.ArrayList;
import java.util.List;
public class DBHelper extends SQLiteOpenHelper {
    private static final int DATABASE_VERSION = 1;
    private static final String DATABASE_NAME = "schoolDetails";
    private static final String TABLE_STUDENTS = "students";
    private static final String ID = "id";
    private static final String NAME = "name";
    private static final String AGE = "age";
    private static final String CITY = "class";



    public DBHelper(@Nullable Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }



    @Override
    public void onCreate(SQLiteDatabase db) {

        String CREATE_STUDENT_TABLE = " CREATE TABLE " + TABLE_STUDENTS + "(" + ID + " INTEGER PRIMARY KEY, "
                                             + NAME + " TEXT, " + AGE + " TEXT, " + CITY + " TEXT " + ")";

        db.execSQL(CREATE_STUDENT_TABLE);

    }

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

        db.execSQL(" DROP TABLE IF EXISTS "+ TABLE_STUDENTS);

        onCreate(db);
    }


    public void addContacts(Students students){
        SQLiteDatabase db = this.getReadableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(NAME,students.getName());
        contentValues.put(AGE,students.getAge());
        contentValues.put(CITY,students.getCity());
        db.insert(TABLE_STUDENTS,null,contentValues);
        db.close();
    }

    // code to get the single contact

    public Students getStudents(int id){
        SQLiteDatabase db = this.getReadableDatabase();

        Cursor cursor = db.rawQuery("select * from " + TABLE_STUDENTS + " where id="+id+"", null);


        if(cursor != null)
            cursor.moveToFirst();
            Students students  = new Students(Integer.parseInt(cursor.getString(0)),
                    cursor.getString(1), Integer.parseInt(cursor.getString(2)),cursor.getString(3));

        return students;
    }

    // code to get all contacts in a list view

    public List getAllStudents(){
        List studentsList = new ArrayList<>();
        String selectQuery = "SELECT * FROM " + TABLE_STUDENTS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(selectQuery,null);
        if(cursor.moveToFirst()){
            do{
                Students students = new Students();
                students.setId(Integer.parseInt(cursor.getString(0)));
                students.setName(cursor.getString(1));
                students.setAge(Integer.parseInt(cursor.getString(2)));
                students.setCity(cursor.getString(3));
                studentsList.add(students);
            }while(cursor.moveToNext());
        }
        return studentsList;
    }

    // code to update the single contact
    public boolean updateStudents(int id, String name, int age, String city){
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues contentValues = new ContentValues();
        contentValues.put(NAME,name);
        contentValues.put(AGE,age);
        contentValues.put(CITY,city);
        db.update(TABLE_STUDENTS, contentValues, ID + " = ? " ,
                 new String[]{String.valueOf(id)});

       return true;
    }


    // Deleting single contact
    public void deleteStudents(Students students){
        SQLiteDatabase db = this.getWritableDatabase();
        db.delete(TABLE_STUDENTS, ID + " = ? ",
                new String[]{String.valueOf(students.getId())});
        db.close();
    }


    // Getting contacts Count
    public int getStudentsCount() {
        int count=0;
        String countQuery = "SELECT  * FROM " + TABLE_STUDENTS;
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.rawQuery(countQuery, null);

        if(cursor != null && !cursor.isClosed()){
            count = cursor.getCount();
            cursor.close();
        }

        return count;
    }

    public int getLastStudentsId(){
        int count = 0;
        SQLiteDatabase db = this.getReadableDatabase();
        String query = "SELECT * FROM " + TABLE_STUDENTS;
        Cursor cursor = db.rawQuery(query,null);
        if(cursor != null && !cursor.isClosed()){
           cursor.moveToLast();

            if(cursor.getCount() == 0) {
                count = 1;
            }else{
                count = cursor.getInt(cursor.getColumnIndex(ID));
            }
        }

        return count;

    }
}


MainActivity.java


package com.example.sqliteexample;

import androidx.appcompat.app.AlertDialog;
import androidx.appcompat.app.AppCompatActivity;

import android.content.DialogInterface;
import android.os.Bundle;
import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity{

    private ListView listViewId;
    private ArrayAdapter arrayAdapter;
    private List studentLists = new ArrayList<>();
    private ArrayList data = new ArrayList<>();
    private EditText nameEdit, ageEdit, cityEdit;
    private Button submitBtn;
    private  DBHelper dbHelper;
    private Students student;
    int count=0;
    int currid = 0;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        listViewId = findViewById(R.id.listViewId);

        nameEdit = findViewById(R.id.nameEdit);
        ageEdit = findViewById(R.id.ageEdit);
        cityEdit = findViewById(R.id.cityEdit);
        submitBtn = findViewById(R.id.submitBtn);
        dbHelper = new DBHelper(this);

        showListData();
        submitBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                boolean checkName = TextUtils.isEmpty(nameEdit.getText().toString());
                boolean checkAge = TextUtils.isEmpty(ageEdit.getText().toString());
                boolean checkCity = TextUtils.isEmpty(cityEdit.getText().toString());

                if(!checkName && !checkAge && !checkCity) {

                    Log.d("True", ((Button) v).getText().toString());

                    if (((Button) v).getText().toString().equals("Submit")) {


                        String name = nameEdit.getText().toString();
                        int age = Integer.parseInt(ageEdit.getText().toString());
                        String city = cityEdit.getText().toString();


                        count = dbHelper.getLastStudentsId();

                        Log.d("Count", String.valueOf(count));

//                if(count == -1){
//                    count = 0;
//                }


                        dbHelper.addContacts(new Students((count + 1), name, age, city));

                        showListData();


                        nameEdit.setText("");
                        ageEdit.setText("");
                        cityEdit.setText("");

                    } else {
                        String name = nameEdit.getText().toString();
                        int age = Integer.parseInt(ageEdit.getText().toString());
                        String city = cityEdit.getText().toString();

                        dbHelper.updateStudents(currid, name, age, city);


                        nameEdit.setText("");
                        ageEdit.setText("");
                        cityEdit.setText("");

                        submitBtn.setText("Submit");

                        showListData();


                    }
                }else{
                    if(checkName == true){
                        nameEdit.setError("Please Enter a Name!");

                    }if(checkAge == true){
                        ageEdit.setError("Please enter the Age!");
                    }if(checkCity == true){
                        cityEdit.setError("Please Enter the City!");
                    }
                }

                }
        });


    }



    public void showListData(){

        studentLists.clear();
        data.clear();
        studentLists = dbHelper.getAllStudents();


//        Toast.makeText(getApplicationContext(), String.valueOf(studentLists.size()),Toast.LENGTH_SHORT).show();


        if(studentLists.size() != 0){
            for(int i=0; i< studentLists.size(); i++){


                data.add(studentLists.get(i).name+" , "+studentLists.get(i).age+" , "+studentLists.get(i).city);
            }
        }

        arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, data);
        listViewId.setAdapter(arrayAdapter);



    listViewId.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

            student = dbHelper.getStudents(position+1);

            nameEdit.setText(student.getName());
            ageEdit.setText(String.valueOf(student.getAge()));
            cityEdit.setText(student.getCity());
            submitBtn.setText("Update");
            currid = position+1;

        }
    });

    listViewId.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
        @Override
        public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) {

            student = dbHelper.getStudents(position+1);

            new AlertDialog.Builder(MainActivity.this)
                    .setMessage("Are you sure You want to delete the Data?")
                    .setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            dbHelper.deleteStudents(student);
                            showListData();
                        }
                    }).setNegativeButton("No",null).show();



            return true;
        }
    });




    }


}


Students.java


package com.example.sqliteexample;

public class Students {
    int id;
    String name;
    int age;
    String city;

    public Students(){

    }

    public Students(int id, String name, int age, String city) {
        this.id = id;
        this.name = name;
        this.age = age;
        this.city = city;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getCity() {
        return city;
    }

    public void setCity(String city) {
        this.city = city;
    }
}