Частина тексту файла (без зображень, графіків і формул):
Мiнiстерство освiти і науки, молоді та спорту України
Національний університет “Львівська політехніка”
Кафедра ЕОМ
Звіт
до лабораторної роботи №5
з дисципліни: «Мережні операційні системи»
На тему: «Робота з базами даних в ОС Android за допомогою СУБД SQLite.»
Мета: Оволодіти навичками роботи з СУБД SQLite в ОС Android.
Завдання:
Створити тестову програму для роботи з базою даних SQLite.
Хід виконання роботи
Перелік основних методів для роботи з базою даних.
db.execSQL(query); - запит на створення видалення таблиць;
ourDatabase.insert(); - додавання нових записів в базу даних
ourDatabase.query(); - вибірка даних з бази
ourDatabase.delete(); - видалення даних з бази
ourDatabase.update(); - обновлення записів в базі
Вихідний код програми
// Lab5Activity.java
package ua.programming.dbtest;
import android.app.Activity;
import android.app.Dialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class DBTest1Activity extends Activity implements android.view.View.OnClickListener {
/** Called when the activity is first created. */
Button sqlUpdate, sqlView;
EditText sqlName, sqlHotness;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
sqlUpdate = (Button)findViewById(R.id.bSQLUpdate);
sqlView = (Button)findViewById(R.id.bSQLopenView);
sqlName = (EditText)findViewById(R.id.etSQLName);
sqlHotness = (EditText)findViewById(R.id.etSQLHotness);
sqlUpdate.setOnClickListener(this);
sqlView.setOnClickListener(this);
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
switch (arg0.getId()) {
case R.id.bSQLUpdate:
boolean didItWork = true;
try {
String name = sqlName.getText().toString();
String hotness = sqlHotness.getText().toString();
HotOrNot entry = new HotOrNot(DBTest1Activity.this);
entry.open();
entry.createEntry(name,hotness);
entry.close();
} catch (Exception e) {
didItWork = false;
String error = e.getMessage();
Dialog dialog = new Dialog(this);
dialog.setTitle("Dang It!");
TextView textView = new TextView(this);
textView.setText(error);
dialog.setContentView(textView);
dialog.show();
}finally
{
if (didItWork) {
Dialog dialog = new Dialog(this);
dialog.setTitle("Heak Yea!");
TextView textView = new TextView(this);
textView.setText("Success");
dialog.setContentView(textView);
dialog.show();
}
}
break;
case R.id.bSQLopenView:
Intent i = new Intent("ua.programming.dbtest.SQLView");
startActivity(i);
break;
default:
break;
}
}
}
package ua.programming.dbtest;
import java.util.ArrayList;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
public class HotOrNot {
public static final String KEY_ROWID="_id";
public static final String KEY_NAME="persones_name";
public static final String KEY_HOTNESS="persones_hotness";
public static final String DATABASE="HotOrNotdb";
public static final String DATABASE_TABLE="peopleTable";
public static final int DATABASE_VERSION=1;
private DbHelper ourHelper;
private final Context ourContext;
private SQLiteDatabase ourDatabase;
private static class DbHelper extends SQLiteOpenHelper
{
public DbHelper(Context context) {
super(context, DATABASE, null, DATABASE_VERSION);
// TODO Auto-generated constructor stub
}
@Override
public void onCreate(SQLiteDatabase db) {
// TODO Auto-generated method stub
String query = "CREATE TABLE " + DATABASE_TABLE + " (" +
KEY_ROWID + " INTEGER PRIMARY KEY AUTOINCREMENT, " +
KEY_NAME + " TEXT NOT NULL, " + KEY_HOTNESS + " TEXT NOT NULL);";
db.execSQL(query);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
// TODO Auto-generated method stub
db.execSQL("DROP TABLE IF EXISTS " + DATABASE_TABLE);
onCreate(db);
}
}
public HotOrNot(Context c)
{
ourContext = c;
}
public HotOrNot open() throws SQLException{
ourHelper = new DbHelper(ourContext);
ourDatabase = ourHelper.getWritableDatabase();
return this;
}
public void close() {
ourHelper.close();
}
public long createEntry(String name, String hotness) {
// TODO Auto-generated method stub
ContentValues cv = new ContentValues();
cv.put(KEY_NAME, name);
cv.put(KEY_HOTNESS, hotness);
return ourDatabase.insert(DATABASE_TABLE, null, cv);
}
public ArrayList<String> getData() {
// TODO Auto-generated method stub
String[] columns = new String[] {KEY_ROWID, KEY_NAME, KEY_HOTNESS};
ArrayList<String> result = new ArrayList<String>();
Cursor cursor = ourDatabase.query(DATABASE_TABLE, columns, null, null, null, null, null);
int iRow = cursor.getColumnIndex(KEY_ROWID);
int iName = cursor.getColumnIndex(KEY_NAME);
int iHotness = cursor.getColumnIndex(KEY_HOTNESS);
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
result.add(cursor.getString(iRow));
result.add(cursor.getString(iName));
result.add(cursor.getString(iHotness));
}
return result;
}
}
package ua.programming.dbtest;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.widget.TableLayout;
import android.widget.TableRow;
import android.widget.TextView;
import android.widget.Toast;
public class SQLView extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.sqlview);
TextView data0 = (TextView)findViewById(R.id.data0);
TextView data1 = (TextView)findViewById(R.id.data1);
TextView data2 = (TextView)findViewById(R.id.data2);
try {
TableLayout tableLayout = (TableLayout)findViewById(R.id.tableLayout1);
HotOrNot info = new HotOrNot(this);
info.open();
ArrayList<String> data = info.getData();
data0.setText(data.get(0));
data1.setText(data.get(1));
data2.setText(data.get(2));
info.close();
TextView[] tViews = new TextView[data.size()];
TableRow[] tRows = new TableRow[data.size()/3];
int j = 0;
for (int i = 3; i < data.size();i++) {
tViews[i] = new TextView(this);
tViews[i].setText(data.get(i));
tViews[i].setLayoutParams(data1.getLayoutParams());
tRows[j] = new TableRow(this);
tRows[j].addView(tViews[i]);
i++;
tViews[i] = new TextView(this);
tViews[i].setText(data.get(i));
tViews[i].setLayoutParams(data1.getLayoutParams());
tRows[j].addView(tViews[i]);
i++;
tViews[i] = new TextView(this);
tViews[i].setText(data.get(i));
tViews[i].setLayoutParams(data1.getLayoutParams());
tRows[j].addView(tViews[i]);
tableLayout.addView(tRows[j]);
j++;
}
} catch (Exception e) {
// TODO: handle exception
Toast.makeText(this, e.getMessage(), Toast.LENGTH_SHORT).show();
}
}
}
Результати виконання програми
Висновок: на даній лабораторній роботі, я ознайомився з основними засобами роботи з базою даних SQLite в ОS Android.