База данных SQLite в Андроид и Room на Kotlin (Android Studio)

Работает с базой данных в Android SQlite через библиотеку Room на Kotlin и Android Studio. На этом уроке мы узнаем самое основное для создания БД, записи и считывания с БД с помощью библиотеки Room.
✅Код урока: neco-desarrollo.es/2022/09/ro...
✅ Все уроки тут: neco-desarrollo.es/exyg
Есть платный курс где мы более подробно изучаем данную тему на практике. Это курс Список покупок/Блокнот, где мы создаем готовое приложение на основе БД и библиотеки Room.
Подробнее про Список покупок: neco-desarrollo.es/2022/06/sh...
ПО ВОПРОСАМ ПРИОБРЕТЕНИЯ КУРСОВ ПИШИТЕ СЮДА:
✅Instagram: @20neco20
✅Instagram: @neco_android_dev
✅VK: public189519480
✅Телеграм: t.me/androidstudioneco
✅Моя почта: necodesarrollo@gmail.com
В связи с ситуацией в мире и отключения рекламы на канале в некоторых странах, канал выживает только благодаря вашей поддержке, всем спасибо за поддержку!
Поддержать канал можно тут:
✅ЮMoney: 4100117811702825
✅PayPal: necodesarrollo@gmail.com
✅ Курс "Доска объявлений ЧАСТЬ 1" на Udemy: www.udemy.com/course/android-...
✅ Курс Shopping List на Udemy: www.udemy.com/course/room-per...
✅ Стать спонсором канала и получить доступ к курсу: / @necoruchannel
0:00 Вступление.
3:05 Добавляем зависимости
4:33 MainDb класс
11:00 Entity
19:20 Dao
26:47 ViewBinding
27:48 Разметка экрана
31:24 Запись в БД с MainActivity
38:24 Показываем данные как список в TextView
#AndroidStudio #Kotlin #Android

Пікірлер: 117

  • @dmitry_ruden
    @dmitry_ruden Жыл бұрын

    Отлично! Спасибо за информативный урок. Пожалуйста, сделайте отдельный подробный курс по многопоточности с Coroutine. Было бы очень здорово!

  • @user-sh9se6eo6f
    @user-sh9se6eo6f Жыл бұрын

    Каждый урок что то новое, Сергей - спасибо! После того, как посмотрел 45 ваших уроков, binding уже не глядя подключаю. Как подсказка начинающим - оставляйте комментарии в коде программы // по мере набора, что за код вы пишете, и что он делает. Это помогает лучше запоминать материал.

  • @porvalrubahu
    @porvalrubahuАй бұрын

    Супер-уроки. Каждый раз по новый для себя теме делаю ресерч в гугле и ютубе и на Вашем канале всегда самая объемная и доступная для понимания вкатуном информация.

  • @brigadir5830
    @brigadir5830 Жыл бұрын

    Я очень ждал урок по room большое вам спасибо ♥️♥️♥️

  • @fakkesenpai
    @fakkesenpai Жыл бұрын

    Ого, рад что ты продолжаешь это делать)

  • @OCEH6
    @OCEH6 Жыл бұрын

    Большое спасибо! Отличного настроения!

  • @sergeydunaev8146
    @sergeydunaev8146 Жыл бұрын

    супер материал! огромное человеческое спасибо!

  • @Galyaminsky
    @Galyaminsky Жыл бұрын

    Спасибо! Платный Курс - вообще отличный. Советую

  • @Polite_person_
    @Polite_person_ Жыл бұрын

    Я ждал этот урок, спасибо

  • @pavelgera72
    @pavelgera72 Жыл бұрын

    БЛАГОДАРЮ ЗА УРОК

  • @trismegistos1s
    @trismegistos1s Жыл бұрын

    Спасибо за уроки. Пожалуйста сделайте урок регистрация и авторизация по API :) Многим было бы полезно как и все ваши видео.

  • @Densoll
    @Densoll10 ай бұрын

    Спасибо, очень полезный и понятный урок!

  • @kostyachu
    @kostyachu Жыл бұрын

    Спасибо большое вам за ваши уроки, мне очень помогло! Мне подходит для понимания, как вы объясняете. Задумываюсь покупке курсов у вас. Спасбо!

  • @NecoRuChannel

    @NecoRuChannel

    Жыл бұрын

    Большое спасибо! Я рад что вам нравиться!

  • @sportfun9713
    @sportfun9713 Жыл бұрын

    Супер урок, большое спасибо

  • @vitiyz803vitiyz
    @vitiyz803vitiyz8 ай бұрын

    Спасибо за труд. Очень понятно и полезно

  • @seoonlyRU
    @seoonlyRU Жыл бұрын

    шикарно))) держите лукасик от гуру по БД и кодера СЕООНЛИ

  • @user-we6si4mi3x
    @user-we6si4mi3x4 ай бұрын

    Большое спасибо за информативный урок!!

  • @user-mz1xl4vr3l
    @user-mz1xl4vr3l Жыл бұрын

    Спасибо за урок, я как раз изучаю базы данных))

  • @appsforkids7808
    @appsforkids78089 ай бұрын

    багато я уроків передивився поки знайшов той який працює, гарно пояснюєте

  • @NecoRuChannel

    @NecoRuChannel

    9 ай бұрын

    Дякую !

  • @user-xx6nl3ym1h
    @user-xx6nl3ym1h4 ай бұрын

    Спасибо, всё понятно!)))

  • @TheDamiankain
    @TheDamiankain Жыл бұрын

    Реально лучший преподаватель на ютубе!!!

  • @Nik_Gol_V
    @Nik_Gol_V Жыл бұрын

    Спасибо огромное за урок

  • @Ivan-fl9vq
    @Ivan-fl9vq Жыл бұрын

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

  • @NikNewNik
    @NikNewNik5 ай бұрын

    Спасибо! Вроде всё работает :)

  • @4sn003
    @4sn003 Жыл бұрын

    Недавно приобрёл проект «Список покупок», поверьте оно того стоит! Плюс обратная связь, помогает быстрее освоить написание кода и андроид программирование в целом! Хочу еще раз сказать огромное спасибо Сергею! В ближайшем будущем планирую приобрести проект «Доска объявлений»

  • @stepanuchnnn4123
    @stepanuchnnn4123 Жыл бұрын

    Great! I very wait relise movie about on any libralies!👍👍

  • @sahibaliyev2445
    @sahibaliyev2445 Жыл бұрын

    Спасибо за урок. О Retrofit не планируете снять урок?

  • @Kininijbsrk
    @Kininijbsrk Жыл бұрын

    Спасибо за видео и еще можно про MWI

  • @INVENToRGAmer
    @INVENToRGAmer Жыл бұрын

    Спасибо за видео

  • @Kininijbsrk
    @Kininijbsrk Жыл бұрын

    Спасибо Сергей за видео, но есть вопрос почему ты не пользуешься клин архитектурой?

  • @Qwerty-qz7gg
    @Qwerty-qz7gg Жыл бұрын

    Комментарий в поддержку!

  • @user-xt5uc8fy4j
    @user-xt5uc8fy4j Жыл бұрын

    Здравствуйте, очень интересно было бы посмотреть, как создать приложение, которое использует sqlite и приложение работает в онлайн режиме

  • @meiram1223
    @meiram1223 Жыл бұрын

    спасибо за труд

  • @user-ok9tp5lx6n
    @user-ok9tp5lx6n Жыл бұрын

    Спасибо) круто

  • @wowus94
    @wowus94 Жыл бұрын

    Спасибо!

  • @Kinogoboom
    @Kinogoboom Жыл бұрын

    Канал просто 🔥 так держать. Очень много полезного и интересного. Можете пожалуйста сделать видео как создать приложение с фильмами либо обоями на телефон? Спасибо

  • @user-hq6iy6zk8s
    @user-hq6iy6zk8s Жыл бұрын

    спасибо!)

  • @user-bb7zy5mg5q
    @user-bb7zy5mg5q9 ай бұрын

    Здравствуйте, подскажите можно ли использовать в место data class обычный class?

  • @IrinaLyubodeeva
    @IrinaLyubodeeva Жыл бұрын

    Спасибо😁

  • @user-vx9fn4es6c
    @user-vx9fn4es6c11 ай бұрын

    Спасибо!!!

  • @alexandralban5682
    @alexandralban5682 Жыл бұрын

    Отличный урок! Спасибо! У меня вопрос по сохранению списка в базу. Подскажите пожалуйста, тут лучше как бы распарсивать приходящий список и записывать по очереди, или лучше использовать конвертер? или я ерунду спрашиваю... ) Смысл - у меня список настроек которые я в базу хочу сохранять и перезаписывать периодический по воле пользователя.

  • @_chkMyStyle_
    @_chkMyStyle_12 күн бұрын

    Супер курс! Спасибо! Скажите я двигаюсь по урокам на Вашем сайте, просмотрел все 35 уроков и вот теперь дошёл сюда. Я могу дальше продолжать двигаться по сайту? Или нужно посмотреть какие-то другие плейлисты уже на KZread ? Хочется сохранить последовательность

  • @user-rd8od6xz8x
    @user-rd8od6xz8x9 ай бұрын

    а что делать если инспектор дата базу не показывает. Не запускается

  • @user-zz4uj1mr5f
    @user-zz4uj1mr5f3 күн бұрын

    23:20 у меня запрос весь зеленый и без подсказок. и я не знаю из за чего так.

  • @user-df2hp7zm8q
    @user-df2hp7zm8q Жыл бұрын

    круто )

  • @alexpro2493
    @alexpro24939 ай бұрын

    Создал по вашему видео recycler view и создал базу данных. В моем приложении rc view находится во фрагменте и у меня никак не получается выводить данные из sqlite в rcView. Что только не пробовал но не могу найти туториал как это делать. Может кто нибудь знает конкретно что нужно делать?😢 два дня голову ломаю

  • @Mecenatt
    @Mecenatt5 ай бұрын

    Подскажите пожалуста , где на эмуляторе храниться файл базы данных

  • @cocojabaa
    @cocojabaa3 ай бұрын

    После подключения зависимостей выдает ошибку "jlink executable C:\Program Files\Java\jre1.8.0_341\bin\jlink.exe does not exist". Не знаю как исправить

  • @MrBestKenny
    @MrBestKenny5 ай бұрын

    В дата классах Entity все поля должны быть var?

  • @user-ff1se8lq1p
    @user-ff1se8lq1p Жыл бұрын

    А можно ли профессионально разрабатывать приложение на телефоне для андроид?

  • @user-li9be3jj3z
    @user-li9be3jj3z Жыл бұрын

    Добрый день,А когда новые видео?

  • @user-pq1wu2fx2l
    @user-pq1wu2fx2l7 ай бұрын

    Ну наконец то знакомый SQL

  • @TheDamiankain
    @TheDamiankain Жыл бұрын

    Если я делаю на фрагментах, то где мне вставить строку val db = NoteDatabase.getDatabase(this)? Мой this подчеркивает красным. У меня 2 фрагмента HomeFragment и AddNoteFragment. Первый для отображения списка, через ресайклер вью, второй для создания/ редактирования заметки.

  • @TheDamiankain

    @TheDamiankain

    Жыл бұрын

    Разобрался. Похоже надо было писать val db = NoteDatabase.getDatabase(view.context) вместо val db = NoteDatabase.getDatabase(this) при использовании фрагментов

  • @edilm2008
    @edilm20084 ай бұрын

    а что если при создании нового проекта не выходит вообще room. версия студио - iguana. Как быть?

  • @NecoRuChannel

    @NecoRuChannel

    4 ай бұрын

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

  • @карнас
    @карнас Жыл бұрын

    Отличные уроки! Занимаюсь ремонтами и разработал для себя приложение за 2.5 месяца абсолютно с нуля. Динамичный прайс с категориями и сортировкой, ведение и просчет заказов согласно прайса, заметки, каталог материалов, контакты с метками, уведомления по заказам и т.д.. Сейчас планирую смотреть уроки по погодному приложению, так как буду писать под себя для морской рыбалки)) 👍

  • @user-rw8zs7vz9u

    @user-rw8zs7vz9u

    Жыл бұрын

    Чувак, я уже пол года учусь, но своего ещё ничего не написал, если у тебя такие успехи в программировании, то может нах этот ремонт и лучше пойдешь в разработку приложений???

  • @карнас

    @карнас

    Жыл бұрын

    @@user-rw8zs7vz9u суть в том, что учиться нужно на том, что нужно тебе самому. На всякой фигне, аля (сделай свое первое приложение за 5 минут!) - ничего не выйдет.. Набросать проект, задаться целью и реализовывать смотря ютуб и читая доки

  • @thejekashoww

    @thejekashoww

    Жыл бұрын

    @@карнас спасибо большое, очень полезный совет! Теперь понимаю, почему нет мотивации, желания обучаться...поскольку нет своей (!) цели, сделать свою прогу для своих нужд! Благодарю🙏

  • @карнас

    @карнас

    Жыл бұрын

    @@thejekashoww , спасибо! Абсолютно верно, пошаговые уроки типа "сделай приложение за 15 уроков", нужны для понимания самих процессов. Если нет своей цели, все бестолково..

  • @thejekashoww

    @thejekashoww

    Жыл бұрын

    @@user-rw8zs7vz9u Друг, ты через пол года получается не получил никаких практических навыков..?

  • @N__C__R
    @N__C__R Жыл бұрын

    годно. как насчет гайда по созданию VPN приложения? с нынешними событиями это будет более чем актуально)

  • @TundraEZ0
    @TundraEZ010 ай бұрын

    Привет А можешь записать видос как делать красивые заметки?

  • @luide2167
    @luide21673 ай бұрын

    Выдало ошибку вот такую. Как устанавливать версии в Игуане я понял. И всё равно как пытаюсь изучить ROOM всегда какаета ошибка которую я пока не могу сам решить. Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugCompileClasspath'.

  • @luide2167

    @luide2167

    3 ай бұрын

    Надо было сделать RebuildProject

  • @fstore2313
    @fstore231310 ай бұрын

    Добрый день, у меня при создание binding, не показывает binding=ActivityMainBanding? Почему так?

  • @NecoRuChannel

    @NecoRuChannel

    10 ай бұрын

    В новой версии АС пишем viewBinding = true в файле build.gradle раньше было без равно

  • @user-xv7sh6lp7o
    @user-xv7sh6lp7o Жыл бұрын

    Спасибо автору канала ! Кто сталкивался с такой проблемой, помогите решить. Plugin [id: 'com.android.application', version: '7.3.0', apply: false] was not found in any of the following sources: Плагин Android Gradle не найден ни в одном из следующих источников

  • @Muhomor2003
    @Muhomor2003 Жыл бұрын

    Здравствуйте, в самом начале при добавлении плагина id ‘kotlin-kapt’ и библиотеки kapt ‘androidx.room:room-compiler:2.5.1’ синхронизация проходит без ошибок. Но при запуске виртуального устройства всегда выходит ошибка: “Задача compileDebugJavaWithJavac (текущая цель - 1.8) и задача kaptGenerateStubsDebugKotlin (текущая цель - 17). Целевая совместимость jvm должна быть установлена на одну и ту же версию Java.” Подскажите пожалуйста, как решить этот вопрос с совместимостью?

  • @NecoRuChannel

    @NecoRuChannel

    Жыл бұрын

    в build.gradle (Module) выбери: compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } должно помочь

  • @Muhomor2003

    @Muhomor2003

    Жыл бұрын

    @@NecoRuChannel Спасибо от всей души, помогло!

  • @NecoRuChannel

    @NecoRuChannel

    Жыл бұрын

    @@Muhomor2003 Я рад что помогло!

  • @user-hi1kb9ob1h
    @user-hi1kb9ob1h8 ай бұрын

    3 вопроса: 1) Почему при указании id в дата классе мы не используем ColumnInfo вместе с PrimaryKey? 2) Почему в дата классе используем var, а не val? 3) Какой стек технологий у вашего приложения с платных уроков? (список покупок + блокнот)

  • @NecoRuChannel

    @NecoRuChannel

    8 ай бұрын

    1 - ColumnInfo нужно только когда хотим чтоб название полей в БД и название переменных было разным. Например ты создаешь БД и используешь в андроид но в БД у тебя поле называется name а в Entity хочешь назвать переменную myName в таком случае будет ошибка, но это можно решить используя ColumnInfo. Если переменные в Entity и в БД не отличаются как в нашем случае то ColumnInfo не обязательно. 2 - в дата классе лучше использовать Val по возможности а изменять значения с помощью copy 3 - Используем Room persistence library, AdMob (3 вида разных реклам), паттерн МVVM, Billing library (встроенные покупки). Курс предназначен для более глубокого изучения Room (БД SQLite) на практике.

  • @user-pq1wu2fx2l
    @user-pq1wu2fx2l7 ай бұрын

    Жаль дб не сработало. Но что делать.

  • @pavelgera72
    @pavelgera72 Жыл бұрын

    почему getAllItem не suspend функция( не запускается во второстепенном потоке)?

  • @NecoRuChannel

    @NecoRuChannel

    Жыл бұрын

    потому что мы не используем корутины

  • @stepanuchnnn4123
    @stepanuchnnn4123 Жыл бұрын

    👍👍👍

  • @Boro030771
    @Boro0307719 ай бұрын

    Как использовать в качестве имени таблицы переменную?

  • @NecoRuChannel

    @NecoRuChannel

    9 ай бұрын

    Нельзя использовать переменную, для этого, таблица будет создана и нельзя ее изменить, можно только делая миграцию

  • @LokiDmytro
    @LokiDmytro8 ай бұрын

    Спасибо за ваши уроки :) Подскажите, а как мне вытащить в отдельную переменную данные с Room. Например я хочу вывести в отдельную переменную цену товара и в отдельную - его название Спасибо :)

  • @NecoRuChannel

    @NecoRuChannel

    8 ай бұрын

    Привет, Entitie из Room это дата класс в котором уже есть переменные по это у из этого дата класса просто передаешь в нужную тебе переменную только в Dao пропиши функцию которая возвращает один элемент или бери нужный из полученного списка

  • @LokiDmytro

    @LokiDmytro

    8 ай бұрын

    @@NecoRuChannel Спасибо, Это я понял А можно подробнее с примером ;)

  • @user-fb5bh1qh2r
    @user-fb5bh1qh2r Жыл бұрын

    Здравствуйте, скажите пожалуйста, а можно добавить уже готовую бд в приложение на языке Котлин

  • @NecoRuChannel

    @NecoRuChannel

    Жыл бұрын

    Да, конечно

  • @user-fb5bh1qh2r

    @user-fb5bh1qh2r

    10 ай бұрын

    не подскажите как это сделать? Спасибо@@NecoRuChannel

  • @NecoRuChannel

    @NecoRuChannel

    10 ай бұрын

    @@user-fb5bh1qh2r при создании БД прежде чем build() запускать есть функция createFromAssets в папку assets нужно добавить БД которую хочешь загрузить и чтоб таблицы и переменные все совпадали иначе работать не будет.

  • @mikewazowski255
    @mikewazowski255 Жыл бұрын

    👍

  • @ddd6355
    @ddd6355Ай бұрын

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

  • @NecoRuChannel

    @NecoRuChannel

    29 күн бұрын

    Потому что это локальная БД на смартфоне

  • @ddd6355

    @ddd6355

    29 күн бұрын

    ​@@NecoRuChannel хм, ну а допустим, если с помощью неё писать авторизацию в большом проекте, и на одном телефоне человек зарегистрировался под данными, например, login и password123, то сможет ли он под такими данными войти с другого устройства? Или если это локальная БД, то только на своём?

  • @NecoRuChannel

    @NecoRuChannel

    29 күн бұрын

    @@ddd6355 Локальная это как например твой дом 🏠. Твой дом это твой телефон, а в доме есть хранилище, и только ты можешь им пользоваться, у соседа свое хранилище. А вот БД на сервере это как общественна библиотека куда может придти кто угодно

  • @user-pq1wu2fx2l
    @user-pq1wu2fx2l7 ай бұрын

    Ошибок навыдавал. Еще в граблях не подключил дату. такого нет. И Flow покрасил красным.

  • @NecoRuChannel

    @NecoRuChannel

    7 ай бұрын

    Смотри чтоб Flow был из пакета coroutine

  • @monkey_businessss
    @monkey_businessss Жыл бұрын

    Господа, если у кого-то выдавалась ошибка апп.*чететам связанное с датабайндинг дебаг*, то вот вам МОЁ решение. В активити у меня помимо основного констрейнлайаут был еще дополнительный (отвечал за визуал серой полосочки слева экрана), на котором находились тектовые плашки. Проблема была, блять, в этих самых плашечках. Рекомендую заместо удаления проекта к хуям просто очень хорошо проверить xml файлы активити.

  • @rinatislamov8977
    @rinatislamov8977 Жыл бұрын

    Мне нравится видео, лёгкая информация для восприятия на русском языке

  • @Кай4ик
    @Кай4ик Жыл бұрын

    Здравствуйте Сергей! Я поражён вашим испанским языком, на вашем втором канале. Почему бы вам не поделится своими знаниями по Испанскому языку, и не обучать ему нас?

  • @NecoRuChannel

    @NecoRuChannel

    Жыл бұрын

    Какие там знания, у меня акцент ужасный))

  • @Кай4ик

    @Кай4ик

    Жыл бұрын

    @@NecoRuChannel Ну всё равно, если бы сделали курс по испанскому, то было бы хорошо его изучить)

  • @Кай4ик

    @Кай4ик

    Жыл бұрын

    @@NecoRuChannel В любом случае, если у вас закончатся курсы, и идеи для новых видео, то вы обязательно вспомните и подумаете об этом 😉

  • @NecoRuChannel

    @NecoRuChannel

    Жыл бұрын

    @@Кай4ик Обязатльно!😉

  • @discord4364

    @discord4364

    Жыл бұрын

    @@NecoRuChannel Я вообще думал, что Сергей испанец с хорошим русским 😁

  • @aftereffects-7483
    @aftereffects-7483 Жыл бұрын

    спасибо за урок,что то у меня - db.getDao().insertItem(item) - insertItem(красным,и как ставишь точку после db - то не ищет...)

  • @sports_and_humor

    @sports_and_humor

    Жыл бұрын

    Значит Dao не подключена, в базе данных MainDb перепиши abstract fun getDao(): com.example.*название поекта*.Dao или просто сотри и Dao и начни писать заново, он подскажет

  • @aftereffects-7483

    @aftereffects-7483

    Жыл бұрын

    @@sports_and_humor спасибо

Келесі