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

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

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

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

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

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

Міністерство освіти і науки України Національний університет «Львівська політехніка» Кафедра ЕОМ Лабораторна робота №5 з дисципліни: «Мережні операційні системи» на тему: «Управління даними в ОС Android за допомогою СУБД SQLite» Львів – 2017 Мета: Оволодіти навичками роботи з СУБД SQLite в ОС Android. Завдання: Створити базу даних навчальних предметів біжучого семестру (назва предмету, обсяг предмету (навчальні години), викладач, розклад, показники успішності) та тестову програму перегляду і редагування записів бази даних. Основні методи для роботи з SQLite в ОС Android: execSQL(String st): виклик запиту для бази даних; st – сам SQL запит.  insert(String table, String nullColumnHack, ContentValues values): додавання запису до таблиці.  update(String table, ContentValues values, String whereClause, String[] whereArgs): обнова запису в базі даних  delete(String table, String whereClause, String[] whereArgs): видалення строки в базі даних  rawQuery(String sql, String[] selectionArgs); query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy): виконання SQL запитів. Повертає елемент Cursor.   Робоча програма створює базу даних та таблицю автоматично. Ми працюємо із цією таблицею. Є можливість додати дані, видалити їх, переглянути та редагувати. Деякі з скрінів роботи програми зображено нижче.  Рис. 1. Головна сторінка програми  Рис. 2. Розділ «Перегляд інформації про предмет» Лістинг: Subjects.java package com.knowleen.lab5and; public class Subjects { private int id; private String subject; private int hours; private String teacher; private String days; private int marks; public Subjects(){} public Subjects(String s, int h, String t, String d, int m) { super(); this.subject = s; this.hours = h; this.teacher = t; this.days = d; this.marks = m; } //getters & setters @Override public String toString() { return "Предмет: " + subject + "\nГодин: " + hours + "\nВикладач: " + teacher + "\nНавчальні дні: " + days + "\nСередня оцінка: " + marks; } public void setId(int id) { this.id = id; } public int getId() { return id; } public String getSubject() { return subject; } public String getDays() { return days; } public String getTeacher() { return teacher; } public int getHours() { return hours; } public int getMarks() { return marks; } public void setSubject(String subject) { this.subject = subject; } public void setHours(int hours) { this.hours = hours; } public void setTeacher(String teacher) { this.teacher = teacher; } public void setDays(String days) { this.days = days; } public void setMarks(int marks) { this.marks = marks; } } DataBaseHelper.java package com.knowleen.lab5and; import java.util.LinkedList; import java.util.List; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.database.sqlite.SQLiteOpenHelper; import android.util.Log; public class DatabaseHelper extends SQLiteOpenHelper { // Database Version private static final int DATABASE_VERSION = 1; // Database Name private static final String DATABASE_NAME = "SubjectsDB3"; public DatabaseHelper(Context context) { super(context, DATABASE_NAME, null, DATABASE_VERSION); } @Override public void onCreate(SQLiteDatabase db) { // SQL statement to create table String CREATE_SUBJ_TABLE = "CREATE TABLE subj ( " + "id INTEGER PRIMARY KEY AUTOINCREMENT, " + "subject TEXT, "+ "hours INTEGER, "+"teacher TEXT, "+"days TEXT, "+ "marks INTEGER )"; // create table db.execSQL(CREATE_SUBJ_TABLE); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // Drop older table if existed db.execSQL("DROP TABLE IF EXISTS subj"); // create fresh table this.onCreate(db); } //--------------------------------------------------------------------- // Name of table private static final String TABLE_SUBJECTS = "subj"; // Columns private static final String KEY_ID = "id"; private static final String KEY_SUBJECT = "subject"; private static final String KEY_HOURS = "hours"; private static final String KEY_TEACHER = "teacher"; private static final String KEY_DAYS = "days"; private static final String KEY_MARKS = "marks"; private static final String[] COLUMNS = {KEY_ID,KEY_SUBJECT,KEY_HOURS,KEY_TEACHER,KEY_DAYS,KEY_MARKS}; public void addSubject(Subjects subjects){ // 1. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); // 2. create ContentValues to add key "column"/value ContentValues values = new ContentValues(); values.put(KEY_SUBJECT, subjects.getSubject()); values.put(KEY_HOURS, subjects.getHours()); values.put(KEY_TEACHER, subjects.getTeacher()); values.put(KEY_DAYS, subjects.getDays()); values.put(KEY_MARKS, subjects.getMarks()); // 3. insert db.insert(TABLE_SUBJECTS, // table null, //nullColumnHack values); // key/value -> keys = column names/ values = column values // 4. close db.close(); } public Subjects getSubject(int id){ // 1. get reference to readable DB SQLiteDatabase db = this.getReadableDatabase(); // 2. build query Cursor cursor = db.query(TABLE_SUBJECTS, // a. table COLUMNS, // b. column names " id = ?", // c. selections new String[] { String.valueOf(id) }, // d. selections args null, // e. group by null, // f. having null, // g. order by null); // h. limit // 3. if we got results get the first one if (cursor != null) cursor.moveToFirst(); // 4. build object Subjects subjects = new Subjects(); subjects.setId(Integer.parseInt(cursor.getString(0))); subjects.setSubject(cursor.getString(1)); subjects.setHours(Integer.parseInt(cursor.getString(2))); subjects.setTeacher(cursor.getString(3)); subjects.setDays(cursor.getString(4)); subjects.setMarks(Integer.parseInt(cursor.getString(5))); // 5. return return subjects; } public Subjects getSubject(String name){ // 1. get reference to readable DB SQLiteDatabase db = this.getReadableDatabase(); // 2. build query Cursor cursor = db.query(TABLE_SUBJECTS, // a. table COLUMNS, // b. column names " subject = ?", // c. selections new String[] { name }, // d. selections args null, // e. group by null, // f. having null, // g. order by null); // h. limit // 3. if we got results get the first one if (cursor != null) cursor.moveToFirst(); // 4. build object Subjects subjects = new Subjects(); subjects.setId(Integer.parseInt(cursor.getString(0))); subjects.setSubject(cursor.getString(1)); subjects.setHours(Integer.parseInt(cursor.getString(2))); subjects.setTeacher(cursor.getString(3)); subjects.setDays(cursor.getString(4)); subjects.setMarks(Integer.parseInt(cursor.getString(5))); return subjects; } // Get All public List<Subjects> getAll() { List<Subjects> subjectses = new LinkedList<Subjects>(); // 1. build the query String query = "SELECT * FROM " + TABLE_SUBJECTS; // 2. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query, null); // 3. go over each row, build and add it to list Subjects subjects = null; if (cursor.moveToFirst()) { do { subjects = new Subjects(); subjects.setId(Integer.parseInt(cursor.getString(0))); subjects.setSubject(cursor.getString(1)); subjects.setHours(Integer.parseInt(cursor.getString(2))); subjects.setTeacher(cursor.getString(3)); subjects.setDays(cursor.getString(4)); subjects.setMarks(Integer.parseInt(cursor.getString(5))); // Adding subjectses.add(subjects); } while (cursor.moveToNext()); } // return sub return subjectses; } // Updating public int updateSubject(Subjects subjects, String name) { // 1. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); // 2. create ContentValues to add key "column"/value ContentValues values = new ContentValues(); values.put(KEY_SUBJECT, subjects.getSubject()); values.put(KEY_HOURS, subjects.getHours()); values.put(KEY_TEACHER, subjects.getTeacher()); values.put(KEY_DAYS, subjects.getDays()); values.put(KEY_MARKS, subjects.getMarks()); // 3. updating row int i = db.update(TABLE_SUBJECTS, //table values, // column/value KEY_SUBJECT+" = ?", // selections new String[] { name }); //selection args // 4. close db.close(); return i; } public void deleteSubject(String name) { // 1. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); // 2. delete db.delete(TABLE_SUBJECTS, KEY_SUBJECT+" = ?", new String[] { name }); // 3. close db.close(); } // Deleting public void deleteSubject(Subjects subjects) { // 1. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); // 2. delete db.delete(TABLE_SUBJECTS, KEY_ID+" = ?", new String[] { String.valueOf(subjects.getId()) }); // 3. close db.close(); } // making spinner items public String[] makeSpinnet(){ String query = "SELECT * FROM " + TABLE_SUBJECTS; int i; // 2. get reference to writable DB SQLiteDatabase db = this.getWritableDatabase(); Cursor cursor = db.rawQuery(query, null); cursor.moveToFirst(); i = 0; //making array to write spinner item's String[] result = new String[cursor.getCount()]; cursor.moveToFirst(); do { result[i] = cursor.getString(1); i++; } while (cursor.moveToNext()); return result; } } StartActivity.java package com.knowleen.lab5and; import android.content.Intent; public class StartActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_start); } public void addSub(View view) { Intent intent = new Intent(this, AddSubject.class); startActivity(intent); } public void delSub(View view) { Intent intent = new Intent(this, DeleteSubject.class); startActivity(intent); } public void watchSub(View view) { Intent intent = new Intent(this, WatchSubject.class); startActivity(intent); } public void editSub(View view) { Intent intent = new Intent(this, EditSubject.class); startActivity(intent); } } AddSubject.java package com.knowleen.lab5and; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; public class AddSubject extends AppCompatActivity { EditText subject, hours, teacher, days, marks; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_add_subject); subject = (EditText) findViewById(R.id.editText2); hours = (EditText) findViewById(R.id.editText3); teacher = (EditText) findViewById(R.id.editText5); days = (EditText) findViewById(R.id.editText7); marks = (EditText)findViewById(R.id.editText8); } public void adding(View view) { DatabaseHelper db = new DatabaseHelper(this); db.addSubject(new Subjects(subject.getText().toString(), Integer.parseInt(hours.getText().toString()), teacher.getText().toString(), days.getText().toString(), Integer.parseInt(marks.getText().toString()))); Toast.makeText(this, "Предмет додано!", Toast.LENGTH_LONG).show(); subject.setText(""); hours.setText(""); teacher.setText(""); days.setText(""); marks.setText(""); } } DeleteSubject.java package com.knowleen.lab5and; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import org.w3c.dom.Text; public class DeleteSubject extends AppCompatActivity { String data = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_delete_subject); DatabaseHelper db = new DatabaseHelper(this); //адаптер для випадаючого меню final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, db.makeSpinnet()); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner spinner = (Spinner) findViewById(R.id.spinner); spinner.setAdapter(adapter); // натиск на пункт з випадаючого меню spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //пишемо назву елементу data = adapter.getItem(position); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); } //видаляємо елемент по назві public void deleting(View view) { DatabaseHelper db = new DatabaseHelper(this); db.deleteSubject(data); Toast.makeText(this, "Предмет видалено!", Toast.LENGTH_LONG).show(); this.recreate(); } } EditSubject.java package com.knowleen.lab5and; import android.support.v7.app.AppCompatActivity; public class EditSubject extends AppCompatActivity { EditText subject, hours, teacher, days, marks; String data = ""; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_edit_subject); subject = (EditText) findViewById(R.id.editText2); hours = (EditText) findViewById(R.id.editText3); teacher = (EditText) findViewById(R.id.editText5); days = (EditText) findViewById(R.id.editText7); marks = (EditText)findViewById(R.id.editText8); final DatabaseHelper db = new DatabaseHelper(this); //адаптер для випадаючого меню final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, db.makeSpinnet()); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner spinner = (Spinner) findViewById(R.id.spinner5); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { //пишемо назву елементу data = adapter.getItem(position); Subjects sub = db.getSubject(data); subject.setText(sub.getSubject()); hours.setText(String.valueOf(sub.getHours())); teacher.setText(sub.getTeacher()); days.setText(sub.getDays()); marks.setText(String.valueOf(sub.getMarks())); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); } public void editing(View view) { DatabaseHelper db = new DatabaseHelper(this); db.updateSubject(new Subjects(subject.getText().toString(), Integer.parseInt(hours.getText().toString()), teacher.getText().toString(), days.getText().toString(), Integer.parseInt(marks.getText().toString())), data); Toast.makeText(this, "Зміну внесено!", Toast.LENGTH_LONG).show(); this.recreate(); } } WatchSubject.java package com.knowleen.lab5and; import android.support.v7.app.AppCompatActivity; public class WatchSubject extends AppCompatActivity { TextView tx; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_watch_subject); tx = (TextView) findViewById(R.id.textView); final DatabaseHelper db = new DatabaseHelper(this); final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, db.makeSpinnet()); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); Spinner spinner = (Spinner) findViewById(R.id.spinner2); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { tx.setText(db.getSubject(adapter.getItem(position)).toString()); } @Override public void onNothingSelected(AdapterView<?> arg0) { } }); } } Висновок. В даній лабораторній роботі ознайомився із SQLite в Android, навчився користуватися основними командами цієї СУБД в Android. Також закріпив свої знання створивши тестову програму.
Антиботан аватар за замовчуванням

22.03.2018 19:13

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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