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

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

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

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

Рік:
2014
Тип роботи:
Лабораторна робота
Предмет:
Мережеві операційні системи

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ / Лабораторна робота №5 з предмету: «Мережні операційні системи» на тему: «Управління даними в ОС Android за допомогою СУБД SQLite» Мета роботи: Оволодіти навичками роботи з СУБД SQLite в ОС Android. Теоретичні відомості: SQLite - це база даних з відкритими вихідними кодами, що включається за замовчуванням до складуАндроїд. SQLite підтримує стандартні можливості реляційних баз даних - синтаксис, транзакції і prepared statements. Крім SQLite вимагає дуже невеликої кількості пам'яті для роботи (приблизно 250 кб). Використання SQLite в Андроїд не вимагає установки БД або адміністрування. Ви вказуєте SQL-запит для роботи з БД і необхідні операції адміністрування виконуються автоматично. Робота з базами даних в Андроїд може бути повільної через операцій введення / виводу, тому всі необхідні операції рекомендується виконувати за допомогою класу AsyncTask (тобто в фоні). SQLite підтримує типи даних TEXT (схожий з String в Java), INTEGER (схожий з long в Java) і REAL (схожий з double в Java). Всі інші типи даних повинні бути сконвертовані в один з цих перед збереженням в базу даних. SQLite сам по собі не перевіряє, чи відповідають записані дані типом даних відповідного стовпця, ви можете записати ціле число в стовпець з типом Integer. Якщо ваш додаток створює базу даних, вона зберігається в папці «DATA / data / APP_NAME / databases / FILENAME». DATA - це шлях, що повертається методом Environment.getDataDirectory (), APP_NAME - ім'я вашого застосування і FILENAME - це ім'я, яке ви даєте базі даних при створенні. Environment.getDataDirectory () зазвичай повертає SD-карту в якості місця. База даних SQLite доступна тільки додатком, яке створює її. Якщо ви хочете дати доступ до даних іншим програмам, ви можете використовувати ContentProvider. Лістинг тестової програми: MainActivity.java package ua.mos.lab5; import java.io.File; 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.database.sqlite.SQLiteException; import android.view.Menu; import android.view.View; import android.widget.EditText; public class MainActivity extends Activity { private static final String DATABASE_NAME = "BODJA.db"; private SQLiteDatabase mDatabase; public static final String KEY_ID = "id"; public static final String KEY_OS = "OS"; public static final String KEY_OWNER = "owner"; public static final String KEY_VERSION = "version"; public static final String KEY_PRODAG = "prodag"; public static final String KEY_NOTE = "note"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); File database=getApplicationContext().getDatabasePath(DATABASE_NAME); if (!database.exists()) { // Database does not exist so copy it from assets here mDatabase = openOrCreateDatabase(DATABASE_NAME, SQLiteDatabase.CREATE_IF_NECESSARY, null); //create TABLE //mDatabase.execSQL("DROP TABLE IF EXISTS " + "bodja"); String createTabl = "CREATE TABLE bodja(id INTEGER PRIMARY KEY AUTOINCREMENT,OS TEXT,owner TEXT,version TEXT,prodag TEXT,note TEXT)"; mDatabase.execSQL(createTabl); mDatabase.close(); EditText ed_id = (EditText)findViewById(R.id.editText1); ed_id.setText("BD created!!!"); } } public void Save_Click(View view) { //boolean isBDopen = mDatabase.isOpen(); mDatabase = openOrCreateDatabase(DATABASE_NAME,SQLiteDatabase.OPEN_READWRITE, null); EditText ed_id = (EditText)findViewById(R.id.editText1); EditText ed_OS = (EditText)findViewById(R.id.editText2); EditText ed_owner = (EditText)findViewById(R.id.editText3); EditText ed_version = (EditText)findViewById(R.id.editText4); EditText ed_prodag = (EditText)findViewById(R.id.editText5); EditText ed_note = (EditText)findViewById(R.id.editText6); long b = createTodo(ed_OS.getText().toString(),ed_owner.getText().toString(),ed_version.getText().toString(), ed_prodag.getText().toString(),ed_note.getText().toString()); ed_id.setText(Long.toString(b)); //close BD mDatabase.close(); } public void View_Click(View view) { mDatabase = openOrCreateDatabase(DATABASE_NAME,SQLiteDatabase.OPEN_READWRITE, null); int rowCount = getRowsCount(); EditText ed_id = (EditText)findViewById(R.id.editText1); EditText ed_OS = (EditText)findViewById(R.id.editText2); EditText ed_owner = (EditText)findViewById(R.id.editText3); EditText ed_version = (EditText)findViewById(R.id.editText4); EditText ed_prodag = (EditText)findViewById(R.id.editText5); EditText ed_note = (EditText)findViewById(R.id.editText6); int bodja = Integer.parseInt(ed_id.getText().toString()); if(bodja<=0 || bodja>rowCount) { AlertDialog alertDialog; alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle("Warning"); alertDialog.setMessage("Hе правильний ID"); alertDialog.show(); ed_id.setText(""); } else { Cursor input = fetchTodo(bodja); String temp = input.getString( input.getColumnIndex("OS") ); ed_OS.setText(temp); ed_owner.setText(input.getString(input.getColumnIndex("owner"))); ed_version.setText(input.getString(input.getColumnIndex("version"))); ed_prodag.setText(input.getString(input.getColumnIndex("prodag"))); ed_note.setText(input.getString(input.getColumnIndex("note"))); } mDatabase.close(); } public void Edit_Click(View view) { mDatabase = openOrCreateDatabase(DATABASE_NAME,SQLiteDatabase.OPEN_READWRITE, null); int rowCount = getRowsCount(); EditText ed_id = (EditText)findViewById(R.id.editText1); EditText ed_OS = (EditText)findViewById(R.id.editText2); EditText ed_owner = (EditText)findViewById(R.id.editText3); EditText ed_version = (EditText)findViewById(R.id.editText4); EditText ed_prodag = (EditText)findViewById(R.id.editText5); EditText ed_note = (EditText)findViewById(R.id.editText6); int bodja = Integer.parseInt(ed_id.getText().toString()); if(bodja<=0 || bodja>rowCount) { AlertDialog alertDialog; alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle("Warning"); alertDialog.setMessage("Hе правильний ID"); alertDialog.show(); ed_id.setText(""); } else { ContentValues base = createContentValues(ed_OS.getText().toString(),ed_owner.getText().toString(),ed_version.getText().toString(), ed_prodag.getText().toString(),ed_note.getText().toString()); String strFilter = "id=" + ed_id.getText().toString(); mDatabase.update("bodja", base, strFilter, null); AlertDialog alertDialog; alertDialog = new AlertDialog.Builder(this).create(); alertDialog.setTitle("Message"); alertDialog.setMessage("Значення успішно оновлено"); alertDialog.show(); } mDatabase.close(); } @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 long createTodo(String a, String b, String c, String d, String e){ ContentValues initialValues = createContentValues(a,b,c,d,e); return mDatabase.insert("bodja", null, initialValues); } private ContentValues createContentValues(String a, String b, String c, String d, String e) { ContentValues values = new ContentValues(); values.put(KEY_OS, a); values.put(KEY_OWNER, b); values.put(KEY_VERSION, c); values.put(KEY_PRODAG, d); values.put(KEY_NOTE, e); return values; } public int getRowsCount() { String countQuery = "SELECT * FROM " + "bodja"; Cursor cursor = mDatabase.rawQuery(countQuery, null); return cursor.getCount(); } public Cursor fetchTodo(long rowId) throws SQLException { Cursor mCursor = mDatabase.query(true, "bodja", new String[] { KEY_OS, KEY_OWNER, KEY_VERSION, KEY_PRODAG, KEY_NOTE }, KEY_ID + "=" + String.valueOf(rowId), null, null, null, null, null); if (mCursor != null) { mCursor.moveToFirst(); } return mCursor; } } 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" > <EditText android:id="@+id/editText1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignRight="@+id/button3" android:layout_below="@+id/button3" android:layout_marginTop="14dp" android:ems="10" android:inputType="number" > <requestFocus /> </EditText> <Button android:id="@+id/button3" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:layout_marginTop="20dp" android:text="Переглянути" android:onClick="View_Click"/> <Button android:id="@+id/button2" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/editText1" android:layout_toRightOf="@+id/button3" android:text="Змінити" android:onClick="Edit_Click"/> <Button android:id="@+id/button1" style="?android:attr/buttonStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_above="@+id/editText1" android:layout_toRightOf="@+id/button2" android:text="Зберегти" android:onClick="Save_Click"/> <EditText android:id="@+id/editText2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText1" android:layout_toLeftOf="@+id/button1" android:ems="10" /> <EditText android:id="@+id/editText3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText2" android:layout_toLeftOf="@+id/button1" android:ems="10" /> <EditText android:id="@+id/editText4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText3" android:layout_toLeftOf="@+id/button1" android:ems="10" /> <EditText android:id="@+id/editText5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText4" android:layout_toLeftOf="@+id/button1" android:ems="10" /> <EditText android:id="@+id/editText6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@+id/editText5" android:layout_toLeftOf="@+id/button1" android:ems="10" /> <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText2" android:layout_alignBottom="@+id/editText2" android:layout_alignLeft="@+id/button1" android:text="ОС" /> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText1" android:layout_alignBottom="@+id/editText1" android:layout_toRightOf="@+id/editText1" android:text="ID" android:textAppearance="?android:attr/textAppearanceMedium" /> <TextView android:id="@+id/textView3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText3" android:layout_alignBottom="@+id/editText3" android:layout_toRightOf="@+id/editText3" android:text="Власник" /> <TextView android:id="@+id/textView4" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText4" android:layout_alignBottom="@+id/editText4" android:layout_toRightOf="@+id/editText4" android:text="Поточна версія" /> <TextView android:id="@+id/textView5" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText5" android:layout_alignBottom="@+id/editText5" android:layout_toRightOf="@+id/editText5" android:text="Продаж, [%]" /> <TextView android:id="@+id/textView6" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBaseline="@+id/editText6" android:layout_alignBottom="@+id/editText6" android:layout_toRightOf="@+id/editText6" android:text="Примітка" /> </RelativeLayout> Результати виконання програми: / / / Висновок: На цій лабораторні роботі я оволодів навичками роботи з СУБД SQLite в ОС Android.
Антиботан аватар за замовчуванням

28.02.2015 15:02-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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