Підключення існуючої бази даних SQLite в Android Studio

Приклад простого Andro >

Зміст

Є два підходи до роботи з БД в Android додатках.

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

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

Створення бази даних

Для створення БД SQLite використовуватимемо, наприклад, DB Browser for SQLite. Завантажуємо та встановлюємо.

Будемо створювати БД із однією таблицею такого виду.

_id name age
1Anton30
2Alina24
3Dima28
4Dasha23

Отже, створюємо базу даних.

даних

Десь зберігаємо і називаємо, наприклад, 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.