Научная статья на тему 'РАЗРАБОТКА БАЗЫ ДАННЫХ ДЛЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ НА ОПЕРАЦИОННОЙ СИСТЕМЕ ANDROID'

РАЗРАБОТКА БАЗЫ ДАННЫХ ДЛЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ НА ОПЕРАЦИОННОЙ СИСТЕМЕ ANDROID Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
713
83
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
МОБИЛЬНОЕ ПРИЛОЖЕНИЕ / ПРОГРАММИРОВАНИЕ / ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ / БД / СУБД / ОС ANDROID / KOTLIN / SQLITE / ORM / ФРЕЙМВОРК ROOM

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Винников Максим Дмитриевич

В данной статье рассматривается создание базы данных для мобильного приложения с использованием ORM-фреймворка Room на языке программирования Kotlin. Представлены такие этапы, как создание сущности, которая представляет таблицу в базе данных, DAO класса, который реализует методы чтения, вставки, обновления и удаления данных, а также класса для получения доступа к самой базе данных.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Винников Максим Дмитриевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

DEVELOPMENT OF A DATABASE FOR A MOBILE APPLICATION ON THE ANDROID OPERATING SYSTEM

This article discusses the creation of a database for a mobile application using the ORM framework Room in the programming language Kotlin. Presented are such steps as creating an entity that represents a table in the database, a DAO class that implements methods of reading, inserting, updating, and deleting data, as well as a class for accessing the database itself.

Текст научной работы на тему «РАЗРАБОТКА БАЗЫ ДАННЫХ ДЛЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ НА ОПЕРАЦИОННОЙ СИСТЕМЕ ANDROID»

УДК 004.4

РАЗРАБОТКА БАЗЫ ДАННЫХ ДЛЯ МОБИЛЬНОГО ПРИЛОЖЕНИЯ НА ОПЕРАЦИОННОЙ СИСТЕМЕ ANDROID

Винников Максим Дмитриевич

Студент, ФГБОУ вПо «Пензенский государственный технологический университет» E-mail: vinnikovmd17@gmail. com

Гудков Кирилл Владимирович

Научный руководитель, к. т.н., доцент, ФГБОУ ВПО «Пензенский государственный технологический университет»

В данной статье рассматривается создание базы данных для мобильного приложения с использованием ORM-фреймворка Room на языке программирования Kotlin. Представлены такие этапы, как создание сущности, которая представляет таблицу в базе данных, DAO класса, который реализует методы чтения, вставки, обновления и удаления данных, а также класса для получения доступа к самой базе данных.

Ключевые слова: мобильное приложение, программирование, информационные технологии, БД, СУБД, ОС Android, Kotlin, SQLite, ORM, фреймворк Room.

DEVELOPMENT OF A DATABASE FOR

A MOBILE APPLICATION ON

THE ANDROID OPERATING SYSTEM

Vinnikov M.D.

Student, Penza State Technological University E-mail: vinnikovmd17@gmail. com

GudkovK. V

Scientific supervisor, Candidate of Technical Sciences, Associate Professor, Penza State Technological University

This article discusses the creation of a database for a mobile application using the ORM framework Room in the programming language Kotlin. Presented are such steps as creating an entity that represents a table in the database, a DAO class that implements methods of reading, inserting, updating, and deleting data, as well as a class for accessing the database itself.

Keywords: Mobile application, programming, information technologies, DB, DBMS, Android OS, Kotlin, SQLite, ORM, Room framework.

В современном мире, любое мобильное приложения хранит необходимые данные для своего правильного функционирования. Следовательно, базы данных (сокр. БД) становиться неотъемлемой частью в работе программного обеспечения для мобильных устройств. Эффективное использование возможностей БД и систем управления базами данных (сокр. СУБД) для мобильного приложения, способствует более гибкой и эффективной работе приложений.

Room - это ORM-фреймворк для управления данными, представленный Google в 2017 году, который, на сегодняшний момент,

является частью коллекции Android Jetpack. Он обеспечивает более высокий уровень абстракции поверх SQLite API. Также Room использует обработчик аннотаций для сохранения данных. Другими словами, классы приложений или классы моделей не должны расширять классы в Room. Также, важными преимуществами является возможность настройки простой миграции данных и многопоточность.

При взаимодействии с Room выделяются три главных компонента:

- Класс для БД, который содержит саму БД и служит главной точкой доступа, лежащей

в основе подключения приложения к сохранённым данным.

- Сущности данных, которые представляют таблицы в БД мобильного приложения.

- Объекты для доступа данных, на англ. Data Access Objects (сокр. DAO), которые предоставляют методы, благодаря чему

Получ

Теперь, после краткого ознакомления работы с ORM-фреймворком Room и определения функционала мобильного приложения, стоит приступить к практической части, а именно реализации базы данных для операционной системы Android. Стоит уточнить, что в данной статье, для краткости, будет создана только сущность пользователя, реализованы базовые операции CRUD, а также разработан класс для представления базы данных.

приложение может использовать запросы на сохранение, на англ. Create, чтение, на англ. Read, обновление, на англ. Update, или удаление, на англ. Delete (сокр. CRUD), данных в БД.

Схема, иллюстрирующая работу основных компонентов в ORM-фреймворке Room, представлена на рисунке 1.

нить / Установить ачения полей

В классе сущности пользователя, помимо первичного ключа, содержатся такие поля, как имя пользователя, электронная почта, номер телефона, дата создания аккаунта, дата обновления (дата последнего входа в сеть), статус (онлайн или нет). Также все поля содержат ограничение «NOT NULL», а поля для номера телефона и электронной почты также содержат ограничение «UNIQUE».

Room БД

Объекты для доступа данных (DAOs)

ить объекты для та данных (DAOs)

Получить сущности из БД

Сохраненные изменения обратно в БД

Сущности

^ Полу

Остальная часть приложения

Рисунок 1 - Схема взаимодействия компонентов Room

@Entity(

tableName = "user", indices = [

Index(value = ["email", "phone"], unique = true), ],

)

data class AppUser( @PrimaryKey(autoGenerate = true) var id:Int,

var username: String,

@ColumnInfo(index = true) var email: String,

var password: String, @ColumnInfo(index = true) var phone: String?,

@ColumnInfo(name = "created_at") var createdAt: String,

@ColumnInfo(name = "updated_at") var updatedAt: String,

var status: Boolean,)

Листинг 1 - Класс сущности пользователя

DAO класс сущности пользователя данных. Данный класс представлен использует основные CRUD операции на в листинге 2. создание, чтение, обновление и удаление

@Dao

interface UserDao {

@Insert(onConflict = OnConflictStrategy.REPLACE) fun createUser(user: User)

@Update

fun updateUser(user: User) @Delete

fun deleteUser(user: User)

@Query("SELECT * FROM user")

fun findAllUsers(): List<User> }

Листинг 2 - DAO класс для сущности пользователя

После создания DAO для сущностей, классе перечислены все объекты, которые необходимо написать класс, который будет составляют БД. представлять доступ к самой БД. В данном

@Database(entities = [User::class, Motorcycle::class], version = 1) @TypeConverters

abstract class AppDatabase : RoomDatabase() { abstract fun userDao(): UserDao?

companion object {

private var INSTANCE: AppDatabase? = null

fun getDatabase(context: Context): AppDatabase { synchronized(this) { var instance = INSTANCE if (instance == null) { instance = Room.databaseBuilder( context.applicationContext, AppDatabase::class.java, "AppDatabase"

).fallbackToDestructiveMigration().build() INSTANCE = instance

}

return instance }

} } }

Листинг 3 - Класс для представления БД Подводя итоги, в данной статье была разработана сущность для представления разработана и спроектирована БД для таблицы в БД, DAO и класса для получения операционной системы Android, с экземпляра БД. использованием ORM-фреймворка Room. Была

ЛИТЕРАТУРА

1. Documentation for app developers [Электронный ресурс]. - Режим доступа: https: / /developer. android.com /docs

2. Save data in a local database using Room [Электронный ресурс]. - Режим доступа: https://developer.android.com/training/data-storage/room

i Надоели баннеры? Вы всегда можете отключить рекламу.