0% found this document useful (0 votes)
8 views9 pages

MAD Prac 26

The document provides an implementation of an Android application that allows users to insert records into a SQLite database using either a normal or fast insertion method. It includes XML layout for the main activity with input fields and buttons, as well as Java code for handling user interactions and database operations. The database handler class manages the creation of the database and the insertion of records, utilizing transactions for faster performance in the fast insertion method.

Uploaded by

dikshakamble2080
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
8 views9 pages

MAD Prac 26

The document provides an implementation of an Android application that allows users to insert records into a SQLite database using either a normal or fast insertion method. It includes XML layout for the main activity with input fields and buttons, as well as Java code for handling user interactions and database operations. The database handler class manages the creation of the database and the insertion of records, utilizing transactions for faster performance in the fast insertion method.

Uploaded by

dikshakamble2080
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 9

Practical 26:

Exercise:
1]Program:
activity_main:
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout
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">

<EditText
android:id="@+id/editTextRecordNum"
android:layout_width="318dp"
android:layout_height="50dp"
android:layout_marginStart="44dp"
android:layout_marginTop="124dp"
android:ems="10"
android:inputType="number"
android:singleLine="true"
android:textColor="#000000"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<Button
android:id="@+id/buttonNormalInsert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="44dp"
android:layout_marginTop="44dp"
android:text="Normal Insert"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextRecordNum" />

<Button
android:id="@+id/buttonFastInsert"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="44dp"
android:layout_marginEnd="48dp"
android:text="Fast Insert"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editTextRecordNum" />

<TextView
android:id="@+id/textViewStatus"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:padding="10dp"
android:text="Status"
android:textColor="#000000"
android:textSize="18sp"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@+id/buttonNormalInsert" />
</androidx.constraintlayout.widget.ConstraintLayout>
MainActivity:
package com.example.mad;

import android.app.Activity;
import android.os.AsyncTask;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {


EditText editTextRecordNum;
TextView tvStatus;

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

editTextRecordNum = findViewById(R.id.editTextRecordNum);
tvStatus = findViewById(R.id.textViewStatus);

Button buttonNormalInsert = findViewById(R.id.buttonNormalInsert);


Button buttonFastInsert = findViewById(R.id.buttonFastInsert);

buttonNormalInsert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AsyncInsertData("normal").execute();
}
});

buttonFastInsert.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AsyncInsertData("fast").execute();
}
});
}

class AsyncInsertData extends AsyncTask<Void, Void, Void> {


String type;
long timeElapsed;

AsyncInsertData(String type) {
this.type = type;
}

@Override
protected void onPreExecute() {
super.onPreExecute();
tvStatus.setText("Inserting " + editTextRecordNum.getText() + "
records...");
}

@Override
protected Void doInBackground(Void... voids) {
try {
int insertCount =
Integer.parseInt(editTextRecordNum.getText().toString());
DatabaseHandler databaseHandler = new
DatabaseHandler(MainActivity.this);
long lStartTime = System.nanoTime();
if (type.equals("normal")) {
databaseHandler.insertNormal(insertCount);
} else {
databaseHandler.insertFast(insertCount);
}
long lEndTime = System.nanoTime();
timeElapsed = lEndTime - lStartTime;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}

@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
tvStatus.setText("Done inserting records. Time elapsed: " + timeElapsed
/ 1000000 + " ms.");
}
}
}
DatabaseHandler:
package com.example.mad;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;

public class DatabaseHandler extends SQLiteOpenHelper {


private static final int DATABASE_VERSION = 1;
private static final String DATABASE_NAME = "NinjaDatabase";

private static final String TABLE_NAME = "locations";


private static final String KEY_ID = "id";
private static final String KEY_NAME = "name";
private static final String KEY_DESCRIPTION = "description";
public DatabaseHandler(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}

@Override
public void onCreate(SQLiteDatabase db) {
String CREATE_TABLE = "CREATE TABLE " + TABLE_NAME + "("
+ KEY_ID + " INTEGER PRIMARY KEY,"
+ KEY_NAME + " TEXT,"
+ KEY_DESCRIPTION + " TEXT" + ")";
db.execSQL(CREATE_TABLE);
}

@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
onCreate(db);
}

public void insertNormal(int insertCount) {


SQLiteDatabase db = this.getWritableDatabase();
for (int i = 0; i < insertCount; i++) {
ContentValues values = new ContentValues();
values.put(KEY_NAME, "Name #" + i);
values.put(KEY_DESCRIPTION, "Description #" + i);
db.insert(TABLE_NAME, null, values);
}
db.close();
}

public void insertFast(int insertCount) {


SQLiteDatabase db = this.getWritableDatabase();
db.beginTransaction();
try {
for (int i = 0; i < insertCount; i++) {
ContentValues values = new ContentValues();
values.put(KEY_NAME, "Name #" + i);
values.put(KEY_DESCRIPTION, "Description #" + i);
db.insert(TABLE_NAME, null, values);
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
db.close();
}
}
}
Output:

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy