...
🤳 Блог Android новостей, посвященный советам экспертов, новостям, обзорам, телефонам Android, приложениям, инструкциям, планшетам и мобильным телефонам.

Как использовать SQLite для разработки приложений для Android

234

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

Программистам в конечном итоге нужно будет научиться использовать базы данных

Вот почему программистам в конечном итоге нужно будет научиться использовать базы данных. Таким образом, ваши данные будут упорядочены, и у вас не будет проблем с получением паролей, пользовательских данных или любой другой информации, которая вам нужна. И это также отличный способ хранить данные на устройстве Android. Для всего этого мы будем использовать SQLite.

Представляем SQLite

Базы данных SQL – это реляционные базы данных, в которых данные хранятся в таблицах. Язык структурированных запросов (SQL) – это декларативный язык, используемый для запросов к этим базам данных, чтобы вы могли добавлять, удалять и редактировать данные. Чтобы узнать больше о самом SQL, прочтите эту статью. SQLite – это реализация реляционной базы данных, специально предназначенная для встроенных сценариев. Он идеально подходит для приложений, подобных Android. Самый простой способ представить реляционную базу данных – это представить ее как серию таблиц.

Что круто, SQLite не требует специальной системы управления реляционными базами данных (СУБД) – она ​​используется непосредственно из вашего кода, а не через сервер или внешний ресурс. Ваши данные сохраняются в файл локально на вашем устройстве, что делает его мощным и удивительно простым способом хранения постоянных данных на Android. SQLite имеет открытый исходный код, прост в использовании, портативен и обладает высокой степенью кросс-совместимости.

Как использовать SQLite для разработки приложений для Android

Если вы хотите начать использовать SQLite в Android Studio, ничего устанавливать не нужно. Android предоставляет классы, которые вы можете использовать для обработки своей базы данных. Разработчики Android могут использовать SQLiteOpenHelper для использования команд SQL. Это то, что мы рассмотрим в этом посте.

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

Создание вашей первой базы данных

Запустите новый пустой проект Android Studio. Теперь создайте новый класс, щелкнув правой кнопкой мыши пакет слева и выбрав «Создать»> «Класс Java». Я назвал свою «База данных». Мы хотим расширить класс SQLiteOpenHelper и ввести его как суперкласс. Напомним: это означает, что мы наследуем методы этого класса, поэтому наш новый класс может действовать точно так же.

Как использовать SQLite для разработки приложений для Android

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

Готовая статья должна выглядеть так:

package

Первое, что нужно сделать, это упростить наш конструктор. Добавьте эти переменные:

public

После этого обновите конструктор следующим образом:

public Database(Context context) 

Разбейте его на части, и вы увидите, что мы называем нашу базу данных MyDatabase.db. Теперь, когда мы создаем новый объект базы данных из этого класса, конструктор будет строить эту базу данных для нас.

Создание таблиц

Теперь мы готовы начать заполнять его некоторыми данными! Эти данные представлены в виде таблицы, и, надеюсь, вы поймете, почему это полезно. Для чего мы можем использовать базу данных в реальном мире? А как насчет CRM – управления взаимоотношениями с клиентами? Это то, что крупные компании используют для отслеживания информации о своих клиентах. Так они узнают, что звонят нам со специальными предложениями, которые могут нас заинтересовать. Таким образом ваша подписка на журнал всегда знает, когда пора продлевать подписку – это может быть хорошим примером для использования.

Другими словами, мы используем наши силы во зло.

Для этого нам понадобится еще несколько переменных, чтобы мы могли построить нашу таблицу и начать заполнять ее данными. Логически это может выглядеть примерно так:

public

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

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

Хотя можно было бы избежать использования таблиц, проявив немного творчества – все это может показаться немного пугающим поначалу – это бесценный навык, которому нужно научиться в долгосрочной перспективе, и он действительно сделает вашу жизнь намного проще. Это также в значительной степени необходимо, если вы когда-либо мечтали стать разработчиком «полного стека» или создавать веб-приложения.

SQL очень необходим, если вы когда-либо мечтали стать «разработчиком полного стека» или создавать веб-приложения.

Чтобы построить эту таблицу, нам нужно использовать execSQL. Это позволяет нам общаться с нашей базой данных и выполнять любую команду SQL, которая не возвращает данные. Так что он идеально подходит для создания нашей таблицы для начала. Мы собираемся использовать это в методе onCreate(), который будет вызываться сразу после создания нашего объекта.

@Override
public void onCreate(SQLiteDatabase db) {
    db.execSQL("

Здесь происходит то, что мы разговариваем с нашей базой данных и говорим ей создать новую таблицу с определенным именем таблицы, которое мы определили в нашей строке.

Если мы сломаем оставшуюся часть этой длинной уродливой строки, на самом деле она содержит ряд простых для понимания команд SQL:

create table + 

SQLite также добавит еще один столбец, неявно называемый rowid, который действует как своего рода индекс для извлечения записей и постепенно увеличивается в значении с каждой новой записью. Первая запись будет иметь идентификатор строки «0», вторая – «1» и так далее. Нам не нужно добавлять это самостоятельно, но мы можем ссылаться на него, когда захотим. Если бы мы хотели изменить имя столбца, мы бы вручную создали его с переменной INTEGER PRIMARY KEY. Таким образом, мы могли бы превратить наш rowid в subscriber_id или что-то подобное.

Остальные столбцы более простые. Они будут содержать символы (VARCHAR), и каждый из них будет называться переменными, которые мы создали ранее. Вот хороший ресурс, где вы можете увидеть синтаксис SQL отдельно для этой команды и многих других.

Если мы разберем строку, она действительно содержит ряд простых для понимания команд SQL.

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

@Override

DROP TABLE используется для удаления существующих данных. Здесь мы удаляем таблицу, если она уже существует, до ее восстановления. Смотрите предыдущий пост, чтобы узнать больше.

Если все на месте, вы создали свою первую базу данных. Отлично сработано!

В будущем, если мы будем ссылаться на уже созданную базу данных, мы будем использовать getReadableDatabase () или getWriteableDatabase (), чтобы открыть базу данных, готовую для чтения или записи.

Вставка данных

Чтобы вставить новые данные в виде строки, просто используйте db.insert (String table, String nullColumnHack, ContentValues). Но что такое ContentValues? Это класс, используемый Android, который может хранить значения, которые должны быть разрешены ContentResolver.

Как использовать SQLite для разработки приложений для Android

Если мы создадим объект ContentValues ​​и заполним его нашими данными, мы сможем передать его в нашу базу данных для ассимиляции. Выглядит это так:

contentValues.put(

Другой вариант – использовать database.execSQL () и ввести данные вручную:

db.execSQL("

Это делает то же самое. Не забывайте всегда закрывать базу данных, когда закончите с ней. Вы ведь выросли в сарае?


По желанию

Конечно, чтобы действительно правильно использовать эту базу данных, мы, вероятно, захотим заполнить наши столбцы объектами. Мы могли бы использовать следующий класс для добавления новых подписчиков в наш список:

public

Тогда мы могли бы легко создать столько новых подписчиков, сколько захотим, и взять оттуда переменные. Более того, мы также можем извлекать данные из нашей базы данных таким образом для создания новых объектов.

Например, мы можем использовать что-то вроде следующего, чтобы прочитать список клиентов, а затем заполнить список массивов, используя эти объекты. Здесь используется «курсор», о котором вы узнаете в следующем разделе.

public ArrayList<Subscribers> getAllRecords() 

Получение данных и использование курсоров

Мы написали очень много кода, ничего не тестируя, и от этого у меня всегда немного чешется.

Проблема в том, что на данный момент здесь особо не на что смотреть. Чтобы проверить, работает ли это, нам нужно запросить и вернуть некоторые данные, которые мы вставили. Для этого нам нужно использовать курсор. Курсоры позволяют управлять целыми наборами результатов и позволяют нам обрабатывать наши строки последовательно. Это удобно, если вы когда-нибудь захотите выполнить какой-либо алгоритм построчно. Вы поймете, что я имею в виду.

Во-первых, нам нужно создать курсор, что мы и сделаем с помощью запроса. Это выглядит так:

Cursor cursor = db.query(

Затем мы могли бы использовать это для создания ArrayList или извлечения отдельных битов данных.

Как использовать SQLite для разработки приложений для Android

Создав такой небольшой метод:

public String returnName() 

Затем мы могли бы получить доступ к нему из нашего MainActivity.java и показать его в TextView, например:

Database database = 

Мне пришлось создать TextView с идентификатором TextView. Это должно отобразить имя «Адам» на экране, так как курсор был перемещен к первой записи и захватывает строку с позиции 1 – туда, куда мы помещаем имя (идентификатор равен 0).

Как использовать SQLite для разработки приложений для Android

Если бы мы использовали это по-настоящему, мы, вероятно, использовали бы цикл «for» и использовали бы его для получения данных из каждой записи. Например:

for

Точно так же мы можем прочитать нашу базу данных таким образом, а затем использовать эти строки для создания объектов для каждого подписчика.

Заключительные комментарии

Другие полезные вещи, которые мы можем сделать, включают обновление строк с помощью database.update и удаление записей с помощью database.delete. Немного организовав, вы можете начать обработку данных логическим и интуитивно понятным образом и откроете множество возможностей для мощных приложений в будущем.

вы создали целый мир возможностей для карьеры программиста

Мало что может быть более ценным, чем данные. Теперь, когда вы знаете, как логически обрабатывать большие наборы данных и сохранять их для дальнейшего использования, вы создали целый мир возможностей для своей карьеры в области программирования.

Источник записи: https://www.androidauthority.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее