Підключення існуючої бази даних SQLite в Android Studio
Приклад простого Andro >
Зміст
Є два підходи до роботи з БД в Android додатках.
У першому варіанті БД створюється у події OnCreate головної активності. Даний варіант хороший для випадку, коли база даних при установці програми порожня або заповнена невеликою кількістю даних, а також у БД активно виконуються записи надалі.
Але цей спосіб не дуже хороший, якщо, наприклад, пишіть який-небудь довідник або іншу програму, коли БД при установці програми вже має бути заповнена великою кількістю записів. На мій погляд, у цьому випадку краще БД підготувати заздалегідь, а потім уже підключити її як окремий файл в ресурсах програми. У цій статті розглянуто цей випадок.
Створення бази даних
Для створення БД SQLite використовуватимемо, наприклад, DB Browser for SQLite. Завантажуємо та встановлюємо.
Будемо створювати БД із однією таблицею такого виду.
| 1 | Anton | 30 |
| 2 | Alina | 24 |
| 3 | Dima | 28 |
| 4 | Dasha | 23 |
Отже, створюємо базу даних.

Десь зберігаємо і називаємо, наприклад, info.db .

Створюємо таблицю, наприклад, clients. І додаємо там поле.

Першим полем у нас буде номер запису _id. Поле буде також первинним ключем.

Аналогічним способом створюємо поля age та name. І тиснемо OK.

У списку таблиць у нас з'явилася наша таблиця clients.

Переходимо у режим заповнення таблиці.

Вибираємо там нашу таблицю і тиснемо Додати запис.

Заповнюємо наші дані та зберігаємо зміни до БД.

Створення Android проекту
Відкриваємо Android Studio і створюємо там новий проект із порожньою активністю. Все як завжди.







Розмітка активності
Так як ми створюємо найпростіший додаток, але в xml файлі активності розмістимо лише кнопку та поле для виведення тексту.



Підготовка Java коду
Нам потрібно обробити клік на кнопку button і щось записати в textView.
Тому знайдемо дані компоненти та зв'яжемо їх у java коді з xml.

Оголосимо змінні компоненти.
Знайдемо компоненти в розмітці XML.
Пропишемо обробник кліка кнопки.
Повний код Java файлу.

Додавання БД до проекту
Усі приготування зроблено. Тепер можемо почати працювати на тему статті. Спочатку додамо файл бази даних у проект.
Створимо папку assets у нашому проекті.



Скопіюємо файл нашої бази даних.





Додавання класу для роботи з БД
Для відкриття та підготовки БД в Andro >SQLiteOpenHelper . Ми також створимо спадкоємець цього класу DatabaseHelper, але він буде сильно модифікований, тому що ми працюватимемо з готовою базою даних, а не створюватимемо їй за допомогою SQL запитів.



Нижче наведено текст всього класу, який потрібно просто скопіювати.
Для роботи в подальшому з іншими базами даних вам нічого не потрібно буде змінювати в цьомукласі, крім рядків.

Розберемо що означають ці рядки.
DB_NAME – ім'я файлу БД. Який файл БД ви створили, таку назву сюди копіюємо.
DB_PATH – шлях до БД. Кожна програма в Android має свою область пам'яті, куди складаються файли програми. Раптом ви захочете вивернути шлях до файлу БД. Я б нічого не чіпав.
DB_VERSION - найцікавіша змінна (причому в прикладах у мережі роботи з готовою БД її обходять стороною). Це номер версії БД. Нижче описано принцип роботи цього класу. Наприклад, ви пишіть довідник рецептів під Android та рецепти зберігаєте у БД. У момент створення установки програми програма повинна скопіювати БД на пристрій. Потім через якийсь час ви вирішили оновити програму, і БД у вас оновилася: структура БД змінилася, додалися нові рецепти. І вам потрібно замінити стару базу даних на нову. Ось тут ви і пропишіть у цій змінній нову версію БД. І при відкритті програми буде здійснено перевірки версії БД і файл БД оновиться. Спочатку версія БД дорівнює 1.
Отже, логіка роботи класу DatabaseHelper у підготовці бази даних.
Копіюємо файл БД, якщо цього файлу немає (при встановленні програми).
Якщо номер БД оновлено, замінюємо один файл бази даних на інший.
Після роботи з базою даних із даного класу витягуємо екземпляр SQLiteDatabase , з яким працюватимемо надалі: здійснювати запити тощо.
Підключаємось до БД
Перейдемо до класу нашої активності. У ньому створимо екземпляр класу DatabaseHelper, спробуємо оновити БД, якщо це потрібно, а потім витягнемо екземпляр SQLiteDatabase.