background top icon
background center wave icon
background filled rhombus icon
background two lines icon
background stroke rhombus icon

Скачать "Урок 34. Работа с базами данных SQLite в Android"

input logo icon
Теги видео
|

Теги видео

SQLite
SQLiteOpenHelper
SQLiteDatabase
ContentValues
Cursor
getColumnIndex
execSQL
Android Studio
Уроки Android Studio
программирование под android
разработка под android
разработка под андроид
java
android sdk
андроид программирование
видео уроки
Андроид
программирование на java
android
как стать программистом
приложения для андроид
программирование для чайников
Субтитры
|

Субтитры

subtitles menu arrow
  • enАнглийский
Скачать
00:00:03
[музыка]
00:00:10
Приветствуем всех на канале Start
00:00:11
Android продолжаем серию уроков по
00:00:13
разработке в Android Studio На прошлом
00:00:16
уроке мы рассмотрели самый простой
00:00:18
способ хранения данных shet preferences
00:00:20
но этот способ не подходит для хранения
00:00:23
большого объёма структурированных данных
00:00:25
на этом уроке рассмотрим работу с базой
00:00:27
данных sqlite в Android SQL является
00:00:31
бесплатной библиотекой которая реализует
00:00:33
автономные базы данных не нуждающиеся в
00:00:35
серверах и не требовательные к ресурсам
00:00:37
компактные и надёжная работа с базой
00:00:40
данных sqlite выполняется посредством
00:00:42
команд языка SQL синтаксис и список
00:00:45
ключевых слов можно посмотреть на сайте
00:00:47
sqlite.org sqlite читает и пишет данные
00:00:51
в обычные файлы на диске полная база
00:00:53
данных SQL с несколькими таблицами
00:00:56
индексами триггерами и представлениями
00:00:58
компактно хранится в одном файле
00:01:00
работу с sqlite поддерживают все Android
00:01:03
устройства независимо от версии в базах
00:01:06
данных SQL можно хранить различные типы
00:01:08
данных например КСТ аналог типа string в
00:01:12
Java integer аналог типа Long в Java и
00:01:15
Real аналог типа Double в Java остальные
00:01:19
типы следует конвертировать прежде чем
00:01:21
сохранять в базе данных типы данных
00:01:24
полей таблиц в sqlite декларативные то
00:01:27
есть независимо от того какой тип данных
00:01:29
для поля был указан при создании таблицы
00:01:31
в этом поле могут сохраняться значения
00:01:33
разных типов при этом sqlite Сам
00:01:36
определяет тип данных для сохранения
00:01:38
значения поля задание типа данных поля
00:01:41
таблицы при создании базы данных
00:01:43
указывает sqlite на предпочтительный тип
00:01:46
данных для сохранения значений Чтобы
00:01:48
избежать путаницы для типов данных полей
00:01:51
таблиц лучше использовать базовые типы
00:01:53
данных sqlite sqlite не поддерживает тип
00:01:56
boolean Используйте числа ноль для false
00:01:58
и один для J
00:02:00
файлы в sqlite рекомендуются хранить не
00:02:03
напрямую в базе данных через тип blop А
00:02:06
в файловой системе а в базе данных
00:02:08
сохранять пути к файлам Ну достаточно
00:02:11
пока теории Давайте перейдём к
00:02:14
практике создадим небольшое приложение
00:02:16
которое берёт данные из полей ввода по
00:02:19
нажатию кнопки сохраняет их в базу
00:02:20
данных по нажатию другой кнопки
00:02:22
извлекает данные из БД А третья Кнопка
00:02:25
будет удалять эти данные из базы
00:02:28
Создайте заготовку приложения файл
00:02:30
макета экрана с такой разметкой здесь
00:02:32
два поля ввода имя и почта и три кнопки
00:02:36
добавление чтение и удаление записей в
00:02:40
классе главного активити создадим
00:02:42
элементы
00:02:43
экрана найдём кнопки и пропиши
00:02:47
обработчики также находим поля ввода в
00:02:50
методе оклик при нажатии на любую кнопку
00:02:52
считываем значение текстовых полей и
00:02:54
сохраняем в Ринго переменное А дальше
00:02:58
напишем конструкцию для разделения
00:03:00
действий по отдельным
00:03:04
кнопкам теперь создадим класс для работы
00:03:08
с базой
00:03:09
данных для этого нужно создать отдельный
00:03:11
класс dbhelper
00:03:13
унаследованный от абстрактного класса
00:03:15
sqlite Open Helper с помощью которого
00:03:18
можно создавать открывать и обновлять
00:03:20
базы
00:03:24
данных здесь нужно реализовать два
00:03:27
обязательных абстрактных метода on
00:03:30
Create этот метод вызывается при первом
00:03:32
создании базы данных и on upgrade
00:03:35
вызывается при изменении базы данных а
00:03:37
именно если указанный в приложении номер
00:03:39
версии базы данных выше чем в самой базе
00:03:42
данных такая ситуация может иметь место
00:03:44
например при обновлении приложения Когда
00:03:46
нужно заменить старую базу sqlite Open
00:03:50
Helper имеет также необязательные методы
00:03:53
on downgrade вызывается при ситуации
00:03:57
обратной той о которой я то только что
00:03:59
говорил то есть номер версии BD в
00:04:01
приложении ниже чем самой BD на практике
00:04:04
такое происходит очень редко метод on
00:04:07
Open вызывается при открытии базы данных
00:04:11
методы Get readable Database возвращает
00:04:13
экземпляр базы данных доступный для
00:04:15
чтения и Get writeable Database
00:04:18
возвращает экземпляр базы данных
00:04:20
доступный и для чтения и для записи К
00:04:23
последним двум методам мы ещ
00:04:26
вернёмся также в классе db нам
00:04:30
конструктор в НМ мы вызываем конструктор
00:04:33
суперкласса и передаём Ему четыре
00:04:35
параметра контекст имя базы данных
00:04:37
объект класса курсор Factory который
00:04:40
расширяет стандартный курсор и версию
00:04:43
базы данных с тремя параметрами всё
00:04:46
понятно а курсор Фактори мы здесь
00:04:48
использовать не будем поэтому зану
00:04:51
его здесь нам нужны константы для версии
00:04:54
базы данных имени базы данных и имени
00:04:58
таблицы указать номер версии базы данных
00:05:01
начиная со значения оди по изменению
00:05:03
номера версии dbhelper будет понимать
00:05:06
что структуру базы данных следует
00:05:12
обновить проверка номера версии
00:05:14
реализуется в методе on upgrade Как вы
00:05:16
могли
00:05:19
видеть добавим также константы для
00:05:22
заголовков столбцов таблицы их будет три
00:05:25
ID name и email идентификатор должен
00:05:28
иметь ние именно нижнее подчеркивание ID
00:05:32
такое название используется в Android
00:05:34
для работы с курсора это особенность
00:05:38
платформы немного поправим конструктор
00:05:41
здесь мы будем использовать наши
00:05:43
константы в методе on Create реализуем
00:05:46
логику создания таблиц и заполнения их
00:05:49
начальными данными при помощи
00:05:51
специальных команд SQL повторюсь метод
00:05:54
on Create вызывается если базы данных не
00:05:56
существует и её надо создавать мы
00:05:59
используем для создания базы данных
00:06:01
метод exec SQL объекта sqlite Database
00:06:05
для выполнения SQL запроса который
00:06:06
создаёт таблицу по запросу видно что мы
00:06:09
создаём таблицу Contacts с полями ID
00:06:12
name и
00:06:13
email нужно учитывать пробелы и знаки
00:06:16
между командами и ключами чтобы
00:06:18
получилась корректная строка SQL
00:06:22
команды в методе on upgrade который
00:06:25
сработает при изменении номера версии
00:06:27
можно реализовать запрос в базу данных
00:06:29
на уничтожение табли dropt после чего
00:06:33
вновь вызвать метод unc для создания
00:06:35
новой версии табли с обновлённой
00:06:38
СТ еди в ла
00:06:42
принятое кония талей сое Дан что и ить
00:06:49
вги ласа для ония или Ив припои запросов
00:06:53
к базе данных поэтому исправим
00:06:56
модификаторы костан с priv на Public
00:06:59
редактировать несколько строк сразу
00:07:01
можно выделив их зажатой клавишей
00:07:04
Alt работу с BD мы реализуем в классе
00:07:07
Main Activity будем сохранять данные в
00:07:09
базу и считывать их оттуда объявляем
00:07:12
переменную класса dbhelper и создаём его
00:07:15
экземпляр в методе
00:07:17
oncreate в методе onclick создаём объект
00:07:20
класса SQL Database этот класс
00:07:23
предназначен для управления базой данных
00:07:26
sqlite в классе SQL Database определены
00:07:29
методы query для чтения данных из BD
00:07:33
insert для добавления данных в базу
00:07:36
Delete для удаления данных из базы и
00:07:39
update для изменения данных в базе
00:07:41
данных
00:07:42
sqlite Кроме того метод execsql
00:07:45
позволяет выполнить любой допустимый код
00:07:48
на языке SQL по отношению к таблицам
00:07:50
базы
00:07:55
данных возвращаемся Activity Итак мы
00:07:58
создали экземпляр класса SQL
00:08:01
Database вызываем метод вспомогательного
00:08:03
класса Get writeable Database чтобы
00:08:06
открыть и вернуть экземпляр базы данных
00:08:09
с которой мы будем работать он будет
00:08:11
доступен Как для чтения так и для
00:08:14
записи если база данных не существует
00:08:17
вспомогательный класс dbhelper вызывает
00:08:20
свой метод
00:08:21
oncreate если версия базы данных
00:08:23
изменилась вызове его метод on upgrade в
00:08:27
любом случае вызов методов Get writeable
00:08:29
Database или Get readable Database в
00:08:32
зависимости от ситуации вернёт
00:08:34
существующую только что созданную или
00:08:36
обновлённую базу
00:08:40
данных создадим объект класса Content
00:08:44
values этот класс используется для
00:08:47
добавления новых строк в таблицу каждый
00:08:49
объект этого класса представляет собой
00:08:51
одну строку таблицы и выглядит как
00:08:53
массив с именами столбцов и значениями
00:08:55
которые им
00:08:57
соответствуют теперь пропишет в кейсе
00:08:59
где отрабатываем нажатие кнопки А такие
00:09:02
строки мы заполняем объект Content val
00:09:05
парами имя Поля и значения и при вставке
00:09:09
в записи в таблицу в указанные поля
00:09:11
будут вставлены соответствующие значения
00:09:14
мы заполняем поля name и email ID у нас
00:09:17
заполнится
00:09:19
автоматически методом insert вставляем
00:09:22
подготовленные строки в
00:09:24
таблицу этот метод принимает имя таблицы
00:09:27
и обет Content сталями значениями второй
00:09:30
аргумент метода используется при вставке
00:09:33
в таблицу пустой строки нам это сейчас
00:09:35
не нужно поэтому передаём
00:09:38
Ну теперь в секции кнопки btn read
00:09:41
реализуем чтение всех записей с таблицы
00:09:44
для чтения используется метод quy на
00:09:47
вход ему подаётся имя таблицы список
00:09:49
запрашиваемых полей условия выборки
00:09:51
группировка и сортировка так как нам
00:09:54
нужны все данные во всех полях без
00:09:56
сортировок и
00:09:58
группировок используем везде NL
00:10:00
указываем только имя таблицы о
00:10:03
сортировке и группировке поговорим на
00:10:05
следующих
00:10:06
уроках метод quy возвращает нам объект
00:10:09
класса курсор его можно рассматривать
00:10:12
как набор строк с
00:10:14
данными класс курсор имеет такие методы
00:10:18
Move to first перемещает курсор на
00:10:20
первую строку в результате запроса Mo to
00:10:23
Next перемещает курсор на следующую
00:10:25
строку перемещает курсор на последнюю
00:10:28
строку
00:10:30
PR перемещает курсор на предыдущую
00:10:32
строку Get возвращает количество строк в
00:10:35
результирующей наборе данных Get col
00:10:38
ind возвращает индекс для столбца с
00:10:41
указанным именем выбрасывает исключение
00:10:43
если столбец с таким именем не
00:10:45
существует Get name возвращает имя
00:10:48
столбца с указанным индексом Get
00:10:51
возвращает массив строк содержащие имена
00:10:54
всех столбцов в объекте
00:10:56
курсор перее указанную строку Get
00:11:00
position возвращает текущую позицию
00:11:02
курсора также Android предоставляет свои
00:11:05
дополнительные методы is before First
00:11:07
возвращает значение указывает ли курсор
00:11:09
на позицию перед первой строкой и After
00:11:13
Last полезный метод сигнализирующие о
00:11:15
достижении конца запроса используется в
00:11:17
циклах is closed возвращает значение
00:11:20
True если курсор закрыт это ещё не все
00:11:23
методы весь перечень их можно посмотреть
00:11:25
в официальной документации на сайте
00:11:27
Developer android.com
00:11:30
метод Mo to first делает первую запись в
00:11:32
курсор активной и заодно проверяет Есть
00:11:34
ли вообще записи в нём то есть
00:11:36
выбиралось ли что-либо в методе
00:11:38
quy далее мы получаем порядковые номера
00:11:41
столбцов в курсор по их именам с помощью
00:11:44
метода Get col Index эти номера потом
00:11:47
используем для чтения данных в методах
00:11:50
Get in и Get string и выводим данные в
00:11:52
Log с помощью метода Mo to Next мы
00:11:55
перебираем все строки в курсоре пока не
00:11:57
добираемся до послед
00:11:59
Если же запис не было то выводим вло
00:12:02
соответствующее сообщение в конце
00:12:05
закрываем курсор освобождаем занимаемые
00:12:07
им ресурсы методом Close так как далее
00:12:10
мы его нигде не используем курсор
00:12:12
обязательно следует закрывать методом CL
00:12:15
для освобождения памяти и наконец секция
00:12:18
btn Clear очистка таблицы удаляются
00:12:23
записи из базы данных методом Del на
00:12:26
вход емы передам им табли качестве
00:12:29
условий для удаления а это значит что
00:12:31
будут удаляться все данные из таблицы
00:12:34
после этого закрываем соединение с базой
00:12:36
данных методом Close Ну что же посмотрим
00:12:39
что мы тут на Коди запускаем приложение
00:12:42
в
00:12:44
эмуляторе пишем что-нибудь в поля
00:12:49
ввода нажимаем кнопку а для добавления
00:12:53
данных в
00:12:57
базу
00:12:59
добавим несколько строк каждый раз
00:13:02
нажимаем кнопку
00:13:17
AD чтобы считать данные из базы нажимаем
00:13:20
кнопку read все строки из таблицы
00:13:23
выводятся в консоль если нажать кнопку
00:13:26
Clear таблица очистится
00:13:29
чтобы убедиться в этом достаточно снова
00:13:31
нажать кнопку read в таблице не осталось
00:13:34
ни одной
00:13:35
строки при этом и база данных и таблица
00:13:38
никуда не делась она даже не уменьшается
00:13:40
в размере при удалении строк Давайте
00:13:42
снова добавим несколько строк в таблицу
00:13:44
базы
00:13:53
данных нажимаем кнопку всё в порядке
00:13:56
строки
00:13:57
добавлены посмотреть где хранится база
00:14:00
данных можно с помощью инструмента
00:14:02
Android Device Monitor здесь есть
00:14:05
вкладка File Explorer путь к базе данных
00:14:08
- это дата дата имя пакета
00:14:25
databases для уменьшения размера базы
00:14:27
при удалении количества строк существует
00:14:30
команда вакуум которая перестраивает
00:14:33
структуру базы данных удаляя пустые
00:14:36
строки Подробнее об этом можно почитать
00:14:39
на сайте
00:14:40
sqlite.org Но это актуально для очень
00:14:44
больших баз и Нам пока не
00:14:46
понадобится Итак подведём итоги для
00:14:49
работы с базой данных мы использовали
00:14:51
два класса класс db Helper на следующий
00:14:54
SQ Open в его конструкторе мы вызываем
00:14:58
конструктор суперкласса и указываем имя
00:15:01
и версию базы данных метод Get Database
00:15:05
выполняет подключение к базе данных и
00:15:07
возвращает нам объект SQL Database для
00:15:10
работы с ней метод Close закрывает
00:15:13
подключение к базе данных в случае когда
00:15:16
база данных отсутствует или устарела
00:15:18
класс предоставляет нам самим
00:15:19
реализовать создание или обновление в
00:15:21
методах onc и
00:15:25
upgrade и второй класс SQ Date содержит
00:15:29
методы для работы с данными то есть
00:15:31
вставка обновление удаление и
00:15:34
[музыка]
00:15:38
чтение на следующем уроке мы продолжим
00:15:41
работу с базой данных и рассмотрим
00:15:43
другие
00:15:44
методы кроме создания базы данных в
00:15:46
приложении Android есть возможность
00:15:48
добавить существующую BD в приложение об
00:15:51
этом есть видео на нашем сайте Android
00:15:54
info Смотрите по ссылке на
00:15:57
экране Исходный код этого урока можно
00:16:00
найти на страничке урока на сайте
00:16:02
Android info А пока Удачи и до
00:16:06
следующего урока Всем
00:16:13
[музыка]
00:16:25
[музыка]
00:16:27
добра
00:16:28
[музыка]
00:16:30
N

Описание:

Подпишись на Продвинутые курсы по созданию мобильных приложений и игр для андроид на языках Java и Kotlin: https://www.fandroid.info/category/prodvinutye-kursy/ В этом уроке продолжаем обзор способов сохранения данных в android. На этом уроке рассмотрим работу с базой данных SQLite в android. SQLite является бесплатной библиотекой, которая реализует автономные базы данных, не нуждающиеся в серверах и не требовательные к ресурсам, компактные и надежные. Весь плейлист: https://www.youtube.com/playlist?list=PLyfVjOYzujugap6Rf3ETNKkx4v9ePllNK Ссылка на дополнительный материал и исходный код проекта: http://www.fandroid.info/urok-34-rabota-s-bazami-dannyh-sqlite-v-android/ Версия урока для Eclipse: https://www.youtube.com/watch?v=IkiDs4iuBBU Источники: https://www.sqlite.org/ https://developer.android.com/ https://developer.alexanderklimov.ru/android/sqlite/android-sqlite.php https://developer.alexanderklimov.ru/android/theory/cursor.php https://www.vogella.com/tutorials/AndroidSQLite/article.html http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ Больше уроков: Уроки Android Studio: https://www.youtube.com/playlist?list=PLyfVjOYzujugap6Rf3ETNKkx4v9ePllNK Инструменты android разработчика: https://www.youtube.com/playlist?list=PLyfVjOYzujugEUT-7gYhONqB5Y1xszpCq Дизайн android приложений: https://www.youtube.com/playlist?list=PLyfVjOYzujugPnav0g4l0GGOPbj_vUf93 Уроки создания игр для android: https://www.youtube.com/playlist?list=PLyfVjOYzujuisikez6McGsBtKviTa_lty Основы программирования на JAVA: https://www.youtube.com/playlist?list=PLyfVjOYzujuj1J2z2CgHw1p4PdDwHuRsd Группа взаимопомощи Вконтакте для начинающих ANDROID разработчиков и программистов: http://www.fandroid.info/gruppa-vzaimopomoshhi-dlya-nachinayushhih-android-razrabotchikov-i-programmistov-osvoim-android-vmeste/ Скачать видеоуроки: http://www.fandroid.info/skachat-video-uroki-po-android-programmirovaniyu-i-razrabotke-mobilnyh-prilozhenij-dlya-android-smartfonov-i-planshetov/ Поддержите наш проект: http://www.fandroid.info/spasibo-za-vashu-podderzhku/ Подпишись на Продвинутый видеокурс по созданию реального android-приложения: http://www.fandroid.info/zapisyvajsya-na-prodvinutyj-videokurs-po-sozdaniyu-realnogo-android-prilozheniya/

Готовим варианты загрузки

popular icon
Популярные
hd icon
HD видео
audio icon
Только звук
total icon
Все форматы
* — Если видео проигрывается в новой вкладке, перейдите в неё, а затем кликните по видео правой кнопкой мыши и выберите пункт "Сохранить видео как..."
** — Ссылка предназначенная для онлайн воспроизведения в специализированных плеерах

Вопросы о скачивании видео

mobile menu iconКак можно скачать видео "Урок 34. Работа с базами данных SQLite в Android"?mobile menu icon

  • Сайт http://unidownloader.com/ — лучший способ скачать видео или отдельно аудиодорожку, если хочется обойтись без установки программ и расширений. Расширение UDL Helper — удобная кнопка, которая органично встраивается на сайты YouTube, Instagram и OK.ru для быстрого скачивания контента.

  • Программа UDL Client (для Windows) — самое мощное решение, поддерживающее более 900 сайтов, социальных сетей и видеохостингов, а также любое качество видео, которое доступно в источнике.

  • UDL Lite — представляет собой удобный доступ к сайту с мобильного устройства. С его помощью вы можете легко скачивать видео прямо на смартфон.

mobile menu iconКакой формат видео "Урок 34. Работа с базами данных SQLite в Android" выбрать?mobile menu icon

  • Наилучшее качество имеют форматы FullHD (1080p), 2K (1440p), 4K (2160p) и 8K (4320p). Чем больше разрешение вашего экрана, тем выше должно быть качество видео. Однако следует учесть и другие факторы: скорость скачивания, количество свободного места, а также производительность устройства при воспроизведении.

mobile menu iconПочему компьютер зависает при загрузке видео "Урок 34. Работа с базами данных SQLite в Android"?mobile menu icon

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

mobile menu iconКак скачать видео "Урок 34. Работа с базами данных SQLite в Android" на телефон?mobile menu icon

  • Вы можете скачать видео на свой смартфон с помощью сайта или pwa-приложения UDL Lite. Также есть возможность отправить ссылку на скачивание через QR-код с помощью расширения UDL Helper.

mobile menu iconКак скачать аудиодорожку (музыку) в MP3 "Урок 34. Работа с базами данных SQLite в Android"?mobile menu icon

  • Самый удобный способ — воспользоваться программой UDL Client, которая поддерживает конвертацию видео в формат MP3. В некоторых случаях MP3 можно скачать и через расширение UDL Helper.

mobile menu iconКак сохранить кадр из видео "Урок 34. Работа с базами данных SQLite в Android"?mobile menu icon

  • Эта функция доступна в расширении UDL Helper. Убедитесь, что в настройках отмечен пункт «Отображать кнопку сохранения скриншота из видео». В правом нижнем углу плеера левее иконки «Настройки» должна появиться иконка камеры, по нажатию на которую текущий кадр из видео будет сохранён на ваш компьютер в формате JPEG.

mobile menu iconСколько это всё стоит?mobile menu icon

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