Управління даними в ОС Android за допомогою СУБД SQLite

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
КН
Кафедра:
Кафедра ЕОМ

Інформація про роботу

Рік:
2013
Тип роботи:
Звіт до лабораторної роботи
Предмет:
Мережеві операційні системи

Частина тексту файла (без зображень, графіків і формул):

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ «ЛЬВІВСЬКА ПОЛІТЕХНІКА» Кафедра ЕОМ / ЗВІТ ДО ЛАБОРАТОРНОЇ РОБОТИ №5 з дисципліни: «Мережні операційні системи» на тему: «Управління даними в ОС Android за допомогою СУБД SQLite» Львів 2013 МЕТА РОБОТИ: Оволодіти навичками роботи з СУБД SQLite в ОС Android. 1. Завдання Створити базу даних навчальних предметів біжучого семестру (назва предмету, обсяг предмету (навчальні години), викладач, розклад, показники успішності) та тестову програму перегляду і редагування записів бази даних. Створити базу даних сучасних мобільних операційних систем (Android, iOS, BlackBerry OS, Symbian OS, Windows Phone, Bada та ін. [7] з інформацією про компанію-власника, біжучу версію, архітектурні особливості (сімейство і т.п.), біжучу долю на ринку мобільних обчислювальних пристроїв та ін.) та тестову програму перегляду і редагування записів бази даних. 2. Перелік основних методів для роботи з СУБД SQLite в ОС Android Основні методи для роботи з СУБД SQLITE В ОС Android: • openOrCreateDatabase(), • execSQL(), • insert(), • update(), • delete(), • close(). 3. Лістинг тестової програми MainActivity.java package com.example.V_Ghost_lab5; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.ContentValues; import android.database.Cursor; import android.database.SQLException; import android.database.sqlite.SQLiteDatabase; import android.view.Menu; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { private static final String DATABASE_NAME = "V_Ghost.db"; private SQLiteDatabase mDatabase; public static final String KEY_ID = "id"; public static final String KEY_LESSON = "lesson"; public static final String KEY_TIME = "time"; public static final String KEY_TEACHER = "teacher"; public static final String KEY_ROZKLAD = "rozklad"; public static final String KEY_BALU = "balu"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.main, menu); return true; } public void CreateBD(View view) { //create BD mDatabase = openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.CREATE_IF_NECESSARY, null); //create TABLE mDatabase.execSQL("DROP TABLE IF EXISTS " + "V_Ghost"); String createTabl = "CREATE TABLE pikaso(id INTEGER PRIMARY KEY AUTOINCREMENT,lesson TEXT,time TEXT,teacher TEXT,rozklad TEXT,balu TEXT)"; mDatabase.execSQL(createTabl); mDatabase.close(); } public void SaveBut(View view) { boolean isBDopen = mDatabase.isOpen(); if(isBDopen == false) mDatabase = openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.OPEN_READWRITE, null); EditText ed_id = (EditText)findViewById(R.id.editText1); EditText ed_lesson = (EditText)findViewById(R.id.editText6); EditText ed_time = (EditText)findViewById(R.id.editText5); EditText ed_teacher = (EditText)findViewById(R.id.editText4); EditText ed_rozklad = (EditText)findViewById(R.id.editText2); EditText ed_balu = (EditText)findViewById(R.id.editText3); long b = createTodo(ed_lesson.getText().toString(),ed_time.getText().toString(),ed_teacher.getText().toString(), ed_rozklad.getText().toString(),ed_balu.getText().toString()); ed_id.setText(Long.toString(b)); //close BD mDatabase.close(); } public void ViewBut(View view) { boolean isBDopen = mDatabase.isOpen(); if(isBDopen == false) mDatabase = openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.OPEN_READWRITE, null); //кількість рядків? int rowCount = getRowsCount(); EditText ed_id = (EditText)findViewById(R.id.editText1); EditText ed_lesson = (EditText)findViewById(R.id.editText6); EditText ed_time = (EditText)findViewById(R.id.editText5); EditText ed_teacher = (EditText)findViewById(R.id.editText4); EditText ed_rozklad = (EditText)findViewById(R.id.editText2); EditText ed_balu = (EditText)findViewById(R.id.editText3); int bodja= Integer.parseInt(ed_id.getText().toString()); //ed_rozklad.setText(Integer.toString(bodja)); if(bodja<=0 || bodja>rowCount) { AlertDialog alertDialog; alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle("Warning"); alertDialog.setMessage("Ви ввели не правильний ID"); alertDialog.show(); ed_id.setText(""); } else { Cursor input = fetchTodo(bodja); String temp = input.getString( input.getColumnIndex("lesson") ); ed_lesson.setText(temp); ed_time.setText(input.getString(input.getColumnIndex("time"))); ed_teacher.setText(input.getString(input.getColumnIndex("teacher"))); ed_rozklad.setText(input.getString(input.getColumnIndex("rozklad"))); ed_balu.setText(input.getString(input.getColumnIndex("balu"))); } mDatabase.close(); } public long createTodo(String lesson, String time, String teacher, String rozklad, String balu){ ContentValues initialValues = createContentValues(lesson,time,teacher,rozklad,balu); return mDatabase.insert("V_Ghost", null, initialValues); } private ContentValues createContentValues(String lesson, String time, String teacher, String rozklad, String balu) { ContentValues values = new ContentValues(); values.put(KEY_LESSON, lesson); values.put(KEY_TIME, time); values.put(KEY_TEACHER, teacher); values.put(KEY_ROZKLAD, rozklad); values.put(KEY_BALU, balu); return values; } public Cursor fetchTodo(long rowId) throws SQLException { Cursor mCursor = mDatabase.query(true, "pikaso", new String[] { KEY_LESSON, KEY_TIME, KEY_TEACHER, KEY_ROZKLAD, KEY_BALU }, KEY_ID + "=" + String.valueOf(rowId), null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } public int getRowsCount() { String countQuery = "SELECT * FROM " + "pikaso"; Cursor cursor = mDatabase.rawQuery(countQuery, null); return cursor.getCount(); } } activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context=".MainActivity" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerHorizontal="true" android:text="V_Ghost" android:textColor="#006600" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/textView1" android:layout_toLeftOf="@+id/textView1" android:onClick="CreateBD" android:text="Створити БД" /> <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@+id/button1" android:layout_alignParentRight="true" android:layout_marginLeft="28dp" android:layout_toRightOf="@+id/textView1" android:ems="10" android:inputType="numberDecimal" > <requestFocus /> </EditText> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText1" android:layout_alignBottom="@+id/editText1" android:layout_alignRight="@+id/textView1" android:text="ID" android:textAppearance="?android:attr/textAppearanceLarge" /> <EditText android:id="@+id/editText6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/editText1" android:layout_below="@+id/button1" android:layout_marginTop="59dp" android:ems="10" /> <EditText android:id="@+id/editText5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/editText1" android:layout_below="@+id/editText6" android:ems="10" /> <EditText android:id="@+id/editText4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/editText1" android:layout_below="@+id/editText5" android:ems="10" /> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/editText1" android:layout_below="@+id/editText4" android:ems="10" /> <Button android:id="@+id/button2" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/editText6" android:layout_below="@+id/editText1" android:layout_marginTop="14dp" android:text="Переглянути" android:onClick="ViewBut"/> <Button android:id="@+id/button3" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/button2" android:layout_alignBottom="@+id/button2" android:layout_alignLeft="@+id/button1" android:text="Зберегти" android:onClick="SaveBut" /> <EditText android:id="@+id/editText3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignLeft="@+id/editText2" android:layout_below="@+id/editText2" android:ems="10" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText6" android:layout_alignBottom="@+id/editText6" android:layout_alignLeft="@+id/button3" android:text="Предмет" android:textAppearance="?android:attr/textAppearanceSmall" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText5" android:layout_alignBottom="@+id/editText5" android:layout_alignLeft="@+id/textView3" android:text="Години" android:textAppearance="?android:attr/textAppearanceSmall" /> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText4" android:layout_alignBottom="@+id/editText4" android:layout_alignLeft="@+id/textView4" android:text="Викладач" android:textAppearance="?android:attr/textAppearanceSmall" /> <TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText2" android:layout_alignBottom="@+id/editText2" android:layout_alignLeft="@+id/textView5" android:text="Кількість пар" android:textAppearance="?android:attr/textAppearanceSmall" /> <TextView android:id="@+id/textView7" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText3" android:layout_alignBottom="@+id/editText3" android:layout_alignLeft="@+id/textView6" android:text="Кількість набраних балів" android:textAppearance="?android:attr/textAppearanceSmall" /> </RelativeLayout> 4. Результати виконання тестової програми Для роботи програми спочатку необхідно натиснути кнопку «Створити БД», оскільки дана БД буде видалятись кожен раз при запуску програми. При натисненні цієї кнопки буде створено базу даних “Pikaso.db”, а також таблицю “pikaso”, що містить такі стовпці: id типу INTEGER з параметрами – PRIMARY KEY та AUTOINCREMENT; lesson TEXT; time TEXT; teacher TEXT; rozklad TEXT; balu TEXT. / Рис.1. Скріншот програми після її запуску / Рис.2. Скріншот після натиснення кнопки Вивід з БД ВИСНОВОК В даній лабораторній роботі я створив новий Android додаток для роботи з базою даних, а також провів його тест. Оволодів навичками роботи з СУБД SQLite в ОС Android.
Антиботан аватар за замовчуванням

21.02.2014 13:02-

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Ділись своїми роботами та отримуй миттєві бонуси!

Маєш корисні навчальні матеріали, які припадають пилом на твоєму комп'ютері? Розрахункові, лабораторні, практичні чи контрольні роботи — завантажуй їх прямо зараз і одразу отримуй бали на свій рахунок! Заархівуй всі файли в один .zip (до 100 МБ) або завантажуй кожен файл окремо. Внесок у спільноту – це легкий спосіб допомогти іншим та отримати додаткові можливості на сайті. Твої старі роботи можуть приносити тобі нові нагороди!
Нічого не вибрано
0%

Оголошення від адміністратора

Антиботан аватар за замовчуванням

Подякувати Студентському архіву довільною сумою

Admin

26.02.2023 12:38

Дякуємо, що користуєтесь нашим архівом!