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

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

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

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

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

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

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра ЕОМ Лабораторна робота №5 з дисципліни "Мережні операційні системи" на тему: «Управління даними в ОС Android за допомогою СУБД SQLite.» Мета роботи: Оволодіти навичками роботи з СУБД SQLite в ОС Android. 1. Перелік основних методів для роботи з СУБД SQLite в ОС Android. db.execSQL(query); - запит на створення видалення таблиць; ourDatabase.insert(); - додавання нових записів в базу даних ourDatabase.query(); - вибірка даних з бази ourDatabase.delete(); - видалення даних з бази ourDatabase.update(); - обновлення записів в базі 2. Результати виконання тестової програми. / Рис. 1. Результат виконання програми Висновок: На даній лабораторній роботі я оволодів навичками роботи з СУБД SQLite в ОС Android. 3. Лістинг тестової програми. MainActivity.xml package com.example.subject; import java.util.ArrayList; import android.os.Bundle; import android.app.Activity; import android.content.Intent; import android.view.KeyEvent; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.ArrayAdapter; import android.widget.ListView; public class MainActivity extends Activity { public final static String EXTRA_MESSAGE = "com.example.subject.MESSAGE"; private ListView obj; DBHelper mydb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mydb = new DBHelper(this); ArrayList array_list = mydb.getAllSubjects(); ArrayAdapter arrayAdapter = new ArrayAdapter(this,android.R.layout.simple_list_item_1, array_list); //adding it to the list view. obj = (ListView)findViewById(0); obj.setAdapter(arrayAdapter); obj.setOnItemClickListener(new OnItemClickListener(){ @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { // TODO Auto-generated method stub int id_To_Search = arg2 + 1; Bundle dataBundle = new Bundle(); dataBundle.putInt("id", id_To_Search); Intent intent = new Intent(getApplicationContext(),com.example.subject.DisplayContact.class); intent.putExtras(dataBundle); startActivity(intent); } }); } @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; } @Override public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch(item.getItemId()) { case R.id.item1: Bundle dataBundle = new Bundle(); dataBundle.putInt("id", 0); Intent intent = new Intent(getApplicationContext(),com.example.subject.DisplayContact.class); intent.putExtras(dataBundle); startActivity(intent); return true; default: return super.onOptionsItemSelected(item); } } public boolean onKeyDown(int keycode, KeyEvent event) { if (keycode == KeyEvent.KEYCODE_BACK) { moveTaskToBack(true); } return super.onKeyDown(keycode, event); } } DBHelper.java package com.example.subject; import java.util.ArrayList; import java.util.HashMap; import java.util.Hashtable; import android.content.ContentValues; import android.content.Context; import android.database.Cursor; import android.database.DatabaseUtils; import android.database.sqlite.SQLiteOpenHelper; import android.database.sqlite.SQLiteDatabase; public class DBHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "MyDBName.db"; public static final String SUBJECT_TABLE_NAME = "subjects"; public static final String SUBJECT_COLUMN_ID = "id"; public static final String SUBJECT_COLUMN_NAME = "subject"; public static final String SUBJECT_COLUMN_TIME = "time"; public static final String SUBJECT_COLUMN_LECTURER = "lecturer"; public static final String SUBJECT_MIDDLE = "middle"; private HashMap hp; public DBHelper(Context context) { super(context, DATABASE_NAME , null, 1); } @Override public void onCreate(SQLiteDatabase db) { // TODO Auto-generated method stub db.execSQL( "create table subjects " + "(id integer primary key, subject text,time text,lecturer text, middle text)" ); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { // TODO Auto-generated method stub db.execSQL("DROP TABLE IF EXISTS subjects"); onCreate(db); } public boolean insertSubject (String subject, String time, String lecturer, String middle) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("subject", subject); contentValues.put("time", time); contentValues.put("lecturer", lecturer); contentValues.put("middle", middle); db.insert("subjects", null, contentValues); return true; } public Cursor getData(int id){ SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery( "select * from subjects where id="+id+"", null ); return res; } public int numberOfRows(){ SQLiteDatabase db = this.getReadableDatabase(); int numRows = (int) DatabaseUtils.queryNumEntries(db, SUBJECT_TABLE_NAME); return numRows; } public boolean updateSubject (Integer id, String subject, String time, String lecturer, String middle) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put("subject", subject); contentValues.put("time", time); contentValues.put("lecturer", lecturer); contentValues.put("middle", middle); db.update("subjects", contentValues, "id = ? ", new String[] { Integer.toString(id) } ); return true; } public Integer deleteSubject (Integer id) { SQLiteDatabase db = this.getWritableDatabase(); return db.delete("subjects", "id = ? ", new String[] { Integer.toString(id) }); } public ArrayList getAllSubjects() { ArrayList array_list = new ArrayList(); //hp = new HashMap(); SQLiteDatabase db = this.getReadableDatabase(); Cursor res = db.rawQuery( "select * from subjects", null ); res.moveToFirst(); while(res.isAfterLast() == false){ array_list.add(res.getString(res.getColumnIndex(SUBJECT_COLUMN_NAME))); res.moveToNext(); } return array_list; } }  DisplayContact.java package com.example.subject; import android.os.Bundle; import android.app.Activity; import android.app.AlertDialog; import android.content.DialogInterface; import android.content.Intent; import android.database.Cursor; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; public class DisplayContact extends Activity { int from_Where_I_Am_Coming = 0; private DBHelper mydb ; TextView subject ; TextView time; TextView lecturer; TextView middle; int id_To_Update = 0; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_display_contact); subject = (TextView) findViewById(R.id.editTextName); time = (TextView) findViewById(R.id.editTextTime); lecturer = (TextView) findViewById(R.id.editTextLecturer); middle = (TextView) findViewById(R.id.editTextMiddle); mydb = new DBHelper(this); Bundle extras = getIntent().getExtras(); if(extras !=null) { int Value = extras.getInt("id"); if(Value>0){ //means this is the view part not the add contact part. Cursor rs = mydb.getData(Value); id_To_Update = Value; rs.moveToFirst(); String subjec = rs.getString(rs.getColumnIndex(DBHelper.SUBJECT_COLUMN_NAME)); String tim = rs.getString(rs.getColumnIndex(DBHelper.SUBJECT_COLUMN_TIME)); String lecture = rs.getString(rs.getColumnIndex(DBHelper.SUBJECT_COLUMN_LECTURER)); String middl = rs.getString(rs.getColumnIndex(DBHelper.SUBJECT_MIDDLE)); if (!rs.isClosed()) { rs.close(); } //Button b = (Button)findViewById(R.id.b); //b.setVisibility(View.INVISIBLE); subject.setText((CharSequence)subjec); subject.setFocusable(false); subject.setClickable(false); time.setText((CharSequence)tim); time.setFocusable(false); time.setClickable(false); lecturer.setText((CharSequence)lecture); lecturer.setFocusable(false); lecturer.setClickable(false); middle.setText((CharSequence)middl); middle.setFocusable(false); middle.setClickable(false); } } } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. Bundle extras = getIntent().getExtras(); if(extras !=null) { int Value = extras.getInt("id"); if(Value>0){ getMenuInflater().inflate(R.menu.display_contact, menu); } else{ getMenuInflater().inflate(R.menu.main, menu); } } return true; } public boolean onOptionsItemSelected(MenuItem item) { super.onOptionsItemSelected(item); switch(item.getItemId()) { case R.id.Edit_Subject: //Button b = (Button)findViewById(R.id.button1); //b.setVisibility(View.VISIBLE); subject.setEnabled(true); subject.setFocusableInTouchMode(true); subject.setClickable(true); time.setEnabled(true); time.setFocusableInTouchMode(true); time.setClickable(true); lecturer.setEnabled(true); lecturer.setFocusableInTouchMode(true); lecturer.setClickable(true); middle.setEnabled(true); middle.setFocusableInTouchMode(true); middle.setClickable(true); return true; case R.id.Delete_Subject: AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setMessage(R.string.deleteSubject) .setPositiveButton(R.string.yes, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { mydb.deleteSubject(id_To_Update); Toast.makeText(getApplicationContext(), "Deleted Successfully", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(getApplicationContext(),com.example.subject.MainActivity.class); startActivity(intent); } }) .setNegativeButton(R.string.no, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { // User cancelled the dialog } }); AlertDialog d = builder.create(); d.setTitle("Are you sure"); d.show(); return true; default: return super.onOptionsItemSelected(item); } } public void run(View view) { Bundle extras = getIntent().getExtras(); if(extras !=null) { int Value = extras.getInt("id"); if(Value>0){ if(mydb.updateSubject(id_To_Update,subject.getText().toString(), time.getText().toString(), lecturer.getText().toString(), middle.getText().toString())){ Toast.makeText(getApplicationContext(), "Updated", Toast.LENGTH_SHORT).show(); Intent intent = new Intent(getApplicationContext(),com.example.subject.MainActivity.class); startActivity(intent); } else{ Toast.makeText(getApplicationContext(), "not Updated", Toast.LENGTH_SHORT).show(); } } else{ if(mydb.insertSubject(subject.getText().toString(), time.getText().toString(), lecturer.getText().toString(), middle.getText().toString())){ Toast.makeText(getApplicationContext(), "done", Toast.LENGTH_SHORT).show(); } else{ Toast.makeText(getApplicationContext(), "not done", Toast.LENGTH_SHORT).show(); } Intent intent = new Intent(getApplicationContext(),com.example.subject.MainActivity.class); startActivity(intent); } } } } Висновок: На даній лабораторній роботі я оволодів навичками програмування доступу та управління базою даних в ОС Android. Розробив програму під Android пристрій.
Антиботан аватар за замовчуванням

22.03.2018 19:03-

Коментарі

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

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

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

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

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

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

Admin

26.02.2023 12:38

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