НОУ ИНТУИТ | Лекция | Работа с базами данных в Android

< Самостоятельная работа 11 || Самостоятельная работа 10: 123

Аннотация: Разработка Android приложения, демонстрирующего возможности работы с базой данных SQLite.

Ключевые слова: android, приложение, базы данных, интерфейс, поле, вывод, активность, класс, объект, запрос, создание таблицы, константы, конструктор класса, конструктор, поля класса, запись, курсор

Цель лабораторной работы:

Разработка Android приложения, демонстрирующего возможности работы с базой данных SQLite.

Задачи лабораторной работы:

  • создать приложение;
  • настроить интерфейс приложения;
  • реализовать логику приложения.

17.

1 Введение

Для достижения цели, поставленной в лабораторной работе, сформулируем требования к разрабатываемому приложению. Приложение демонстрирует возможности работы с базой данных, предполагает реализацию следующих действий:

  • добавление записей в базу данных;
  • считывание строк и вывод на экран;
  • удаление базы данных.

17.2 Создание приложения

Создадим новое Android приложение:

Project Name: Lab7_1-SQLite;
Package Name: com.example.lab7_1_sqlite;
Activity Files: SQLiteActivity.java, activity_sqlite.xml.

17.3 Настройка интерфейса

Разрабатываемое приложение является учебно-тренировочным, предполагает демонстрацию возможностей работы с базой данных: создание, добавление записей, просмотр записей, удаление базы данных. Поэтому интерфейс будет максимально простым: нам понадобятся два поля для ввода данных (в таблице базы данных два столбца), поле для вывода записей базы данных и три кнопки, по одной на каждое действие: добавление записей, вывод записей, удаление базы.

В нашем случае активность приложения имеет вид, показанный на рис. 17.1. Разумеется, не обязательно в точности воспроизводить предложенный внешний вид приложения, а на самом деле даже имеет смысл настроить интерфейс по своему усмотрению, чтобы потренировать навыки работы с компонентами и настройками пользовательского интерфейса.

Рис. 17.1. Внешний вид приложения для демонстрации основных возможностей базы данных SQLIte в системе Android

Дальше >>

< Самостоятельная работа 11 || Самостоятельная работа 10: 123

SQLiteOpenHelper и инспектор базы данных в Android

Нравится (3)

Твитнуть

Делиться

9,44К Просмотров

Что такое SQLite?

SQLite — это реляционная база данных с открытым исходным кодом, похожая на MySQL. Android включает библиотеку SQLite в свою стандартную библиотеку, которая реализует бессерверную, не требующую настройки и транзакционную базу данных SQL. SQLite не работает на сервере базы данных, а хранит все свои данные в простых файлах. Полная база данных SQLite с множеством таблиц, триггеров, индексов и представлений содержится в одном файле на диске. SQLite встроен во все мобильные телефоны и большинство компьютеров и поставляется в комплекте. Он несет легкие данные и не требует каких-либо процедур администрирования или настройки базы данных.

Пакет android.database.sqlite.SQLiteDatabase состоит из всех API-интерфейсов для выполнения операций CRUD из нашего приложения для Android.

SQLiteOpenHelper

SQLiteOpenHelper — это встроенный класс пакета android.database.sqlite.SQLiteDatabase. Это вспомогательный класс для управления созданием базы данных SQLite и управлением версиями. Вспомогательный класс управляет созданием базы данных, обработкой манипуляций с базой данных, а также управлением версиями. Нам нужно создать подкласс, расширяющий SQLiteOpenHelper 9.0022   класс для работы с базой данных. В этом классе мы реализуем два переопределенных метода onCreate() и onUpgrade(). Эти классы позаботятся об открытии базы данных, если она существует, ее создании, если ее нет, и ее обновлении по мере необходимости.

onCreate() метод

Метод onCreate() вызывается при первом создании базы данных. Он вызывается только один раз на протяжении всего жизненного цикла приложения. Она будет вызываться при первом вызове функции getReadableDatabase() или getWritableDatabase(). Эти функции доступны в суперклассе SQLiteOpenHelper.

Приведенный ниже оператор создает экземпляр объекта класса SQLiteOpenHelper и вызывает его конструктор.

Класс SQLiteOpenHelper вызывает метод onCreate() после создания базы данных и создания экземпляра объекта SQLiteDatabase. Метод onCreate() вызывается только один раз при первом создании базы данных.

onUpgrade() method

Метод onUpgrade() вызывается, когда необходимо обновить базу данных. Он вызывается, когда файл базы данных уже существует, и мы хотим обновить его версию.

Теперь мы создадим простое приложение для Android, чтобы продемонстрировать класс SQLiteOPneHelper. Это приложение вставляет записи о сотрудниках в таблицу «Empdata» в базе данных SQLite «Company.db», используя класс SQLiteOpenHelper.

Мы имеем очень простой пользовательский интерфейс, разработанный ниже, как показано ниже в Activity_main.xml

MainActivity.java

Employee. из SQLiteOpenHelper. Класс SQLiteOpenHelper имеет различные встроенные методы для вставки, обновления, чтения и удаления записей.

После создания базы данных необходимо создать и обновить поля. Мы можем использовать объект ContentValues, в котором хранятся ключи и значения. ContentValues ​​— это пара «имя-значение», используемая для вставки или обновления значений в таблицах базы данных. Объект ContentValues ​​будет передан функциям вставки () и обновления () объектов SQLiteDataBase.

Инспектор баз данных в Android Studio

Инспектор баз данных позволяет нам проверять, запрашивать и изменять базы данных нашего приложения во время работы нашего приложения. Инспектор базы данных доступен в Android Studio 4.1 и выше. Это особенно полезно для отладки базы данных. Инспектор баз данных работает как с простым SQLite, так и с библиотеками, построенными на основе SQLite, такими как Room. Инспектор баз данных работает только с библиотекой SQLite, включенной в операционную систему Android на уровне API 26 и выше.

Чтобы открыть базу данных в Инспекторе баз данных, выполните следующие действия:

  1. Запустите приложение на эмуляторе или подключенном устройстве с API уровня 26 или выше.
  2. Выберите View > Tool Windows > Database Inspector в строке меню.
  3. Выберите запущенный процесс приложения из раскрывающегося меню.
  4. Базы данных в запущенном в данный момент приложении отображаются на панели Базы данных . Разверните узел базы данных, которую нам нужно проверить.

Примечание: Известная проблема, связанная с эмулятором Android 11, приводит к сбою приложений при подключении к DB Inspector. Чтобы устранить проблему, выполните следующие действия.

База данных Реляционная база данных Android (робот)

Мнения участников DZone являются их собственными.

Класс SQLiteOpenHelper (Android.Database.Sqlite) | Microsoft Узнайте

Твиттер LinkedIn Фейсбук Электронная почта

  • № по каталогу

Определение

Пространство имен:
Android.База данных.Sqlite
Сборка:
Mono.Android.dll

Важный

Некоторая информация относится к предварительной версии продукта, который может быть существенно изменен до его выпуска. Microsoft не дает никаких явных или подразумеваемых гарантий в отношении представленной здесь информации.

Вспомогательный класс для управления созданием базы данных и управлением версиями.

 [Android.Runtime.Register("android/база данных/sqlite/SQLiteOpenHelper", DoNotGenerateAcw=true)]
открытый абстрактный класс SQLiteOpenHelper: Java.Lang.Object, IDisposable, Java.Interop.IJavaPeerable, Java.Lang.IAutoCloseable 
 []
введите SQLiteOpenHelper = класс
    наследовать объект
    интерфейс IAutoCloseable
    интерфейс IJavaObject
    интерфейс IDisposable
    интерфейс IJavaPeerable 
Наследство

Объект

Объект

SQLiteOpenHelper

Атрибуты

РегистрАтрибут

Инструменты

ИЯваОбъект IJavaPeerable IAutoCloseable IОдноразовый

Документация по Java для android. database.sqlite.SQLiteOpenHelper .

Части этой страницы представляют собой модификации, основанные на работе, созданной и опубликованной проектом Android с открытым исходным кодом, и используются в соответствии с условиями, описанными в лицензии Creative Commons 2.5 Attribution.

Конструкторы

SQLiteOpenHelper (контекст, строка, Int32, SQLiteDatabase + OpenParams)

Создайте вспомогательный объект для создания, открытия и/или управления базой данных.

SQLiteOpenHelper (контекст, строка, SQLiteDatabase+ICursorFactory, Int32)

Создайте вспомогательный объект для создания, открытия и/или управления базой данных.

SQLiteOpenHelper(Context, String, SQLiteDatabase+ICursorFactory, Int32, IDatabaseErrorHandler)

Создайте вспомогательный объект для создания, открытия и/или управления базой данных.

SQLiteOpenHelper (IntPtr, JniHandleOwnership)

Конструктор, используемый при создании управляемых представлений объектов JNI; вызывается средой выполнения.

Характеристики

Сорт

Возвращает класс среды выполнения этого объекта .

(Унаследовано от объекта)
Имя базы данных

Вернуть имя открываемой базы данных SQLite, как указано в конструктор.

Ручка

Дескриптор базового экземпляра Android.

(Унаследовано от объекта)
JniIdentityHashCode (Унаследовано от объекта)
JniPeerMembers
PeerReference (Унаследовано от объекта)
ReadableDatabase

Создать и/или открыть базу данных.

Пороговый класс

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из вашего кода.

Тип порога

Этот API поддерживает инфраструктуру Mono для Android и не предназначен для использования непосредственно из вашего кода.

Записываемая база данных

Создайте и/или откройте базу данных, которая будет использоваться для чтения и записи.

Методы

Клон()

Создает и возвращает копию этого объекта.

(Унаследовано от объекта)
Закрывать()

Закрыть любой открытый объект базы данных.

Утилизировать() (Унаследовано от объекта)
Распоряжаться (логическое значение) (Унаследовано от объекта)
Равно(Объект)

Указывает, равен ли какой-либо другой объект этому объекту.

(Унаследовано от объекта)
ПолучитьHashCode()

Возвращает значение хеш-кода для объекта.

(Унаследовано от объекта)
JavaFinalize()

Вызывается сборщиком мусора для объекта при сборке мусора определяет, что больше нет ссылок на объект.

(Унаследовано от объекта)
Поставить в известность()

Пробуждает один поток, ожидающий этого объекта. монитор.

(Унаследовано от объекта)
Уведомить всех()

Пробуждает все потоки, ожидающие на мониторе этого объекта.

(Унаследовано от объекта)
Онконфигуре (SQLiteDatabase)

Вызывается при настройке подключения к базе данных, чтобы включить такие функции, как ведение журнала с опережающей записью или поддержка внешнего ключа.

При создании (SQLiteDatabase)

Вызывается при первом создании базы данных.

OnDowngrade (SQLiteDatabase, Int32, Int32)

Вызывается, когда необходимо понизить версию базы данных.

OnOpen(SQLiteDatabase)

Вызывается при открытии базы данных.

OnUpgrade (SQLiteDatabase, Int32, Int32)

Вызывается, когда необходимо обновить базу данных.

SetHandle (IntPtr, JniHandleOwnership)

Задает свойство Handle.

(Унаследовано от объекта)
Сетидлеконнектионтимеаут (Int64)

Устарело.

Устанавливает максимальное количество миллисекунд, в течение которого соединение SQLite может быть бездействующим. до того, как он будет закрыт и удален из пула.

SetLookasideConfig(Int32, Int32)

Настраивает резервный распределитель памяти

SetOpenParams (SQLiteDatabase + OpenParams)

Устанавливает параметры конфигурации, используемые для открытия SQLiteDatabase .

SetWriteAheadLoggingEnabled (логическое значение)

Включает или отключает использование ведения журнала с упреждающей записью для базы данных.

Массив() (Унаследовано от объекта)
Нанизывать()

Возвращает строковое представление объекта.

(Унаследовано от объекта)
Отменить регистрацию из времени выполнения () (Унаследовано от объекта)
Ждать()

Заставляет текущий поток ожидать, пока другой поток не вызовет метод java.lang.Object#notify() или Метод java.lang.Object#notifyAll() для этого объекта.

(Унаследовано от объекта)
Подождите(Int64)

Заставляет текущий поток ожидать, пока какой-либо другой поток не вызовет метод java. lang.Object#notify() или метод java.lang.Object#notifyAll() для этого объекта или истекло указанное количество времени.

(Унаследовано от объекта)
Подождите(Int64, Int32)

Заставляет текущий поток ожидать, пока другой поток не вызовет метод java.lang.Object#notify() или метод java.lang.Object#notifyAll() для этого объекта или какой-то другой поток прерывает текущий поток, или определенный количество реального времени истекло.

(Унаследовано от объекта)

Явные реализации интерфейса

IJavaPeerable.Disposed() (Унаследовано от объекта)
IJavaPeerable.DisposeUnlessReferenced() (Унаследовано от объекта)
IJavaPeerable.Finalized() (Унаследовано от объекта)
IJavaPeerable.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *