SQLite CREATE | INSERT | UPDATE | DELETE.
SQLite is AN open-source relational database i.e. wont to perform info operations on android devices like storing, manipulating or retrieving persistent information from the info.Android provides many ways in which to store user and app information. SQLite is a method of storing user information. SQLite may be a Very light weight info that comes with android OS. during this tutorial I’ll be discussing a way to write categories to handle all SQLite operations.Simple and easy to understand. SQLite storage of Android.we use SQLite for store temporary data.like username,password and profile pic etc.below simple example for SQLite.
Create New Project:
MainActivity.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"
android:padding="15dp"
android:orientation="vertical"
tools:context="com.example.aaru.sqldatabase.MainActivity">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="SQLDatabase"
android:textSize="35dp"
android:layout_gravity="center"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edtUname"
android:hint="UserName"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/edtPass"
android:hint="Password"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnSubmit"
android:text="Submit"
android:layout_marginTop="10dp"
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btnView"
android:text="View"
/>
</LinearLayout>
The android.database.sqlite.SQLiteOpenHelper class is used for info creation and version management. For activity any info operation, you have got to supply the implementation of onCreate() and onUpgrade() methods of SQLiteOpenHelper category.
Create A Java file name is DBHelper.
DBHelper.java
package com.example.aaru.sqldatabase;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
/**
* Created by Aaru on 11/16/2017.
*/
public class DBHelper extends SQLiteOpenHelper {
public static final String DBNAME="mydata.db"; //Database name
public static final String TABLE="User";//TABLE name
public static final String UNAME="UNAME"; //column name
public static final String UPASS="UPASS"; //column name
public static final String ID="ID";//id is unique this is column name
public DBHelper(Context context) {//we need only context
super(context, DBNAME, null, 1);
//name=database name
//version is 1(my new project and version is 1)
//factory always null
//database created when we create a object
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//in onCreate create a table using sqLiteDatabse object
sqLiteDatabase.execSQL("CREATE TABLE "+TABLE+"("+ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"+UNAME+" TEXT,"+UPASS+" TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS "+TABLE+"");//if table is already check and drop table
onCreate(sqLiteDatabase);
}
//create a method for insert data
public long insertData(String name, String pass){
//create SqLiteDatabase object
SQLiteDatabase db=this.getWritableDatabase();//for write data
//use contentvalue object for store data
ContentValues values=new ContentValues();
values.put(UNAME,name);
values.put(UPASS,pass);
return db.insert(TABLE,null,values); //return a long value
}
public ArrayList<Model> getAllData(){
//create arraylist for store value
ArrayList<Model>alName= new ArrayList<>();
//create database object
SQLiteDatabase dbR=this.getReadableDatabase(); //for read data only
Cursor res= dbR.rawQuery("Select*From "+TABLE+"",null);
res.moveToFirst();
while (res.isAfterLast()==false){
Model m=new Model();
m.setID(res.getString(res.getColumnIndex(ID)));
m.setUNAME(res.getString(res.getColumnIndex(UNAME)));
m.setUPASS(res.getString(res.getColumnIndex(UPASS)));
alName.add(m);
res.moveToNext();
}
return alName;
//it's done!!
}
//for delete user
public int deleteUser(String id){
//create sqlitedatabase object
SQLiteDatabase dbDelete=this.getWritableDatabase();
return dbDelete.delete(TABLE,"id=?",new String[]{id});
//delete user using id
}
public boolean updateUser(String id, String username, String password){
//Create database object
SQLiteDatabase dbupdate=this.getWritableDatabase();//for write database
//use contentvalue object
ContentValues values=new ContentValues();
values.put(UNAME,username);
values.put(UPASS,password);
dbupdate.update(TABLE,values,"id=?",new String[]{id});
return true;
//update is done
//use both method in UserList
}
}
package com.example.aaru.sqldatabase;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import java.util.ArrayList;
/**
* Created by Aaru on 11/16/2017.
*/
public class DBHelper extends SQLiteOpenHelper {
public static final String DBNAME="mydata.db"; //Database name
public static final String TABLE="User";//TABLE name
public static final String UNAME="UNAME"; //column name
public static final String UPASS="UPASS"; //column name
public static final String ID="ID";//id is unique this is column name
public DBHelper(Context context) {//we need only context
super(context, DBNAME, null, 1);
//name=database name
//version is 1(my new project and version is 1)
//factory always null
//database created when we create a object
}
@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
//in onCreate create a table using sqLiteDatabse object
sqLiteDatabase.execSQL("CREATE TABLE "+TABLE+"("+ID+" INTEGER PRIMARY KEY AUTOINCREMENT,"+UNAME+" TEXT,"+UPASS+" TEXT)");
}
@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {
sqLiteDatabase.execSQL("DROP TABLE IF EXISTS "+TABLE+"");//if table is already check and drop table
onCreate(sqLiteDatabase);
}
//create a method for insert data
public long insertData(String name, String pass){
//create SqLiteDatabase object
SQLiteDatabase db=this.getWritableDatabase();//for write data
//use contentvalue object for store data
ContentValues values=new ContentValues();
values.put(UNAME,name);
values.put(UPASS,pass);
return db.insert(TABLE,null,values); //return a long value
}
public ArrayList<Model> getAllData(){
//create arraylist for store value
ArrayList<Model>alName= new ArrayList<>();
//create database object
SQLiteDatabase dbR=this.getReadableDatabase(); //for read data only
Cursor res= dbR.rawQuery("Select*From "+TABLE+"",null);
res.moveToFirst();
while (res.isAfterLast()==false){
Model m=new Model();
m.setID(res.getString(res.getColumnIndex(ID)));
m.setUNAME(res.getString(res.getColumnIndex(UNAME)));
m.setUPASS(res.getString(res.getColumnIndex(UPASS)));
alName.add(m);
res.moveToNext();
}
return alName;
//it's done!!
}
//for delete user
public int deleteUser(String id){
//create sqlitedatabase object
SQLiteDatabase dbDelete=this.getWritableDatabase();
return dbDelete.delete(TABLE,"id=?",new String[]{id});
//delete user using id
}
public boolean updateUser(String id, String username, String password){
//Create database object
SQLiteDatabase dbupdate=this.getWritableDatabase();//for write database
//use contentvalue object
ContentValues values=new ContentValues();
values.put(UNAME,username);
values.put(UPASS,password);
dbupdate.update(TABLE,values,"id=?",new String[]{id});
return true;
//update is done
//use both method in UserList
}
}
In MainActovity.java(Insert data )
MainActivity.Java
<pre style="font-family:arial;font-size:12px;border:1px dashed #CCCCCC;width:99%;height:auto;overflow:auto;background:#f0f0f0;;background-image:URL(https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_3BTv2gc-tlxJwfd5nc0lTVxmnpgDNC2dFwh2C8RaCWstfaDBeWvRumaHv4idvayQc_lvDJaI8P_09TyI15D-qFY4sQYg0AC3NY7rhFjv29jwu24zmP9Kc6Twz4M2Ui8PokBDN0FQilsf/s320/codebg.gif);padding:0px;color:#000000;text-align:left;line-height:20px;"><code style="color:#000000;word-wrap:normal;"> package com.example.aaru.sqldatabase;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
EditText edtName,edtPass;
Button btnSubmit,btnView;
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edtName=findViewById(R.id.edtUname);
edtPass=findViewById(R.id.edtPass);
btnSubmit=findViewById(R.id.btnSubmit);
btnView=findViewById(R.id.btnView);
btnView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent i2=new Intent(MainActivity.this,UserList.class);
startActivity(i2);
}
});
dbHelper=new DBHelper(this);
btnSubmit.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if (dbHelper.insertData(edtName.getText().toString(),edtPass.getText().toString())!=-1){
//if data not insert we get -1
Toast.makeText(MainActivity.this, "INSERT SUCCESS", Toast.LENGTH_SHORT).show();
//let's run
}
}
});
}
}
</code></pre>
Model.java
package com.example.aaru.sqldatabase;
/**
* Created by Aaru on 11/17/2017.
*/
public class Model {
String ID;
String UNAME;
public String getID() {
return ID;
}
public void setID(String ID) {
this.ID = ID;
}
public String getUNAME() {
return UNAME;
}
public void setUNAME(String UNAME) {
this.UNAME = UNAME;
}
public String getUPASS() {
return UPASS;
}
public void setUPASS(String UPASS) {
this.UPASS = UPASS;
}
String UPASS;
//use getter setter method
}
View database in UserList using simple array list
UserList(ListView)
package com.example.aaru.sqldatabase;
import android.content.DialogInterface;
import android.content.Intent;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
public class UserList extends AppCompatActivity {
//create simple listview
ListView listView;
ArrayList<String>alName=new ArrayList<>();
ArrayList<Model>allModel=new ArrayList<>();
DBHelper dbHelper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_user_list);
listView=findViewById(R.id.listView);
dbHelper=new DBHelper(this);
//call getData method
allModel=dbHelper.getAllData();
//this sore multiple data in almodel
//get Uname from alModel
for (int i=0;i<allModel.size();i++){
alName.add(allModel.get(i).getUNAME());
//username store in alNames
}
ArrayAdapter adapter=new ArrayAdapter(this,android.R.layout.simple_list_item_1,alName);
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(UserList.this, alName.get(i), Toast.LENGTH_SHORT).show();
//lets run app
//create view Button in Main Activity
}
});
listView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> adapterView, View view, final int userposition, long l) {
//Create layout xml for custom Dialog
AlertDialog.Builder dialogInterface=new AlertDialog.Builder(UserList.this);
LayoutInflater inflater=UserList.this.getLayoutInflater();
final View dialogView=inflater.inflate(R.layout.customdialog,null);
dialogInterface.setView(dialogView);//view is set
//get id
final EditText username=dialogView.findViewById(R.id.dialog_UserName);
final EditText password=dialogView.findViewById(R.id.dialog_Password);
username.setText(allModel.get(userposition).getUNAME());
password.setText(allModel.get(userposition).getUPASS());
dialogInterface.setTitle("UPDATE | DELETE");
dialogInterface.setMessage("Are you sure you went UPDATE |DELETE :"+allModel.get(userposition).getUNAME());
dialogInterface.setPositiveButton("UPDATE", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//Update
dbHelper.updateUser(allModel.get(userposition).getID(),username.getText().toString(),password.getText().toString());
Toast.makeText(UserList.this, "Update Success", Toast.LENGTH_SHORT).show();
finish();
startActivity(getIntent());//refresh activity
}
});
dialogInterface.setNegativeButton("DELETE", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
//DELETE
dbHelper.deleteUser(allModel.get(userposition).getID());
Toast.makeText(UserList.this, "DELETED", Toast.LENGTH_SHORT).show();
finish();
startActivity(getIntent());//refresh activity
//Run App
}
});
AlertDialog b= dialogInterface.create();
b.show();
//dialog is created
return false;
}
});
}
}
Use ListView widgets in UserList.xml
UserList_Activity.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"
android:orientation="vertical"
android:padding="15dp"
tools:context="com.example.aaru.sqldatabase.UserList">
<ListView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/listView"
></ListView>
</LinearLayout>
Create custom layout xml for custom dialog.
CustomDialog.xml
<?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"
android:padding="15dp"
>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Username"
android:id="@+id/dialog_UserName"
/>
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Password"
android:id="@+id/dialog_Password"
/>
</LinearLayout>
>>>>>>>>>>END!!<<<<<<<<<<<
>>>>>>>>>>Enjoy Code<<<<<<<<<<<
Comments
Post a Comment
Please Comment if Any Query !!