DevioLab CRYPTO TRADING AUTOMATION
LIVE
AUTOMATED CRYPTO TRADING • BINANCE
Автоматизуйте свій криптопортфель
Торгові боти DevioLab аналізують крипторинок, автоматично відкривають і закривають позиції та керують вашим портфелем на Binance 24/7.
CRYPTO 80 Bots
BINANCE Spot Trading
TRADING 24 / 7
Спробувати DevioLab
deviolab.com

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

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

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

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

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

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ / Лабораторна робота №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:47

Коментарі

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

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

Нічого не вибрано
0%

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

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

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

Admin

26.02.2023 12:38

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