База данных 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
Отлично! Спасибо за информативный урок. Пожалуйста, сделайте отдельный подробный курс по многопоточности с Coroutine. Было бы очень здорово!
Каждый урок что то новое, Сергей - спасибо! После того, как посмотрел 45 ваших уроков, binding уже не глядя подключаю. Как подсказка начинающим - оставляйте комментарии в коде программы // по мере набора, что за код вы пишете, и что он делает. Это помогает лучше запоминать материал.
Супер-уроки. Каждый раз по новый для себя теме делаю ресерч в гугле и ютубе и на Вашем канале всегда самая объемная и доступная для понимания вкатуном информация.
Я очень ждал урок по room большое вам спасибо ♥️♥️♥️
Ого, рад что ты продолжаешь это делать)
Большое спасибо! Отличного настроения!
супер материал! огромное человеческое спасибо!
Спасибо! Платный Курс - вообще отличный. Советую
Я ждал этот урок, спасибо
БЛАГОДАРЮ ЗА УРОК
Спасибо за уроки. Пожалуйста сделайте урок регистрация и авторизация по API :) Многим было бы полезно как и все ваши видео.
Спасибо, очень полезный и понятный урок!
Спасибо большое вам за ваши уроки, мне очень помогло! Мне подходит для понимания, как вы объясняете. Задумываюсь покупке курсов у вас. Спасбо!
@NecoRuChannel
Жыл бұрын
Большое спасибо! Я рад что вам нравиться!
Супер урок, большое спасибо
Спасибо за труд. Очень понятно и полезно
шикарно))) держите лукасик от гуру по БД и кодера СЕООНЛИ
Большое спасибо за информативный урок!!
Спасибо за урок, я как раз изучаю базы данных))
багато я уроків передивився поки знайшов той який працює, гарно пояснюєте
@NecoRuChannel
9 ай бұрын
Дякую !
Спасибо, всё понятно!)))
Реально лучший преподаватель на ютубе!!!
Спасибо огромное за урок
Прохожу курс шопинг лист и немного возвращаюсь сюда что бы все понять и вспомнить! Отличные уроки, всем рекомендую купить платный курс ShopList
Спасибо! Вроде всё работает :)
Недавно приобрёл проект «Список покупок», поверьте оно того стоит! Плюс обратная связь, помогает быстрее освоить написание кода и андроид программирование в целом! Хочу еще раз сказать огромное спасибо Сергею! В ближайшем будущем планирую приобрести проект «Доска объявлений»
Great! I very wait relise movie about on any libralies!👍👍
Спасибо за урок. О Retrofit не планируете снять урок?
Спасибо за видео и еще можно про MWI
Спасибо за видео
Спасибо Сергей за видео, но есть вопрос почему ты не пользуешься клин архитектурой?
Комментарий в поддержку!
Здравствуйте, очень интересно было бы посмотреть, как создать приложение, которое использует sqlite и приложение работает в онлайн режиме
спасибо за труд
Спасибо) круто
Спасибо!
Канал просто 🔥 так держать. Очень много полезного и интересного. Можете пожалуйста сделать видео как создать приложение с фильмами либо обоями на телефон? Спасибо
спасибо!)
Здравствуйте, подскажите можно ли использовать в место data class обычный class?
Спасибо😁
Спасибо!!!
Отличный урок! Спасибо! У меня вопрос по сохранению списка в базу. Подскажите пожалуйста, тут лучше как бы распарсивать приходящий список и записывать по очереди, или лучше использовать конвертер? или я ерунду спрашиваю... ) Смысл - у меня список настроек которые я в базу хочу сохранять и перезаписывать периодический по воле пользователя.
Супер курс! Спасибо! Скажите я двигаюсь по урокам на Вашем сайте, просмотрел все 35 уроков и вот теперь дошёл сюда. Я могу дальше продолжать двигаться по сайту? Или нужно посмотреть какие-то другие плейлисты уже на KZread ? Хочется сохранить последовательность
а что делать если инспектор дата базу не показывает. Не запускается
23:20 у меня запрос весь зеленый и без подсказок. и я не знаю из за чего так.
круто )
Создал по вашему видео recycler view и создал базу данных. В моем приложении rc view находится во фрагменте и у меня никак не получается выводить данные из sqlite в rcView. Что только не пробовал но не могу найти туториал как это делать. Может кто нибудь знает конкретно что нужно делать?😢 два дня голову ломаю
Подскажите пожалуста , где на эмуляторе храниться файл базы данных
После подключения зависимостей выдает ошибку "jlink executable C:\Program Files\Java\jre1.8.0_341\bin\jlink.exe does not exist". Не знаю как исправить
В дата классах Entity все поля должны быть var?
А можно ли профессионально разрабатывать приложение на телефоне для андроид?
Добрый день,А когда новые видео?
Ну наконец то знакомый SQL
Если я делаю на фрагментах, то где мне вставить строку val db = NoteDatabase.getDatabase(this)? Мой this подчеркивает красным. У меня 2 фрагмента HomeFragment и AddNoteFragment. Первый для отображения списка, через ресайклер вью, второй для создания/ редактирования заметки.
@TheDamiankain
Жыл бұрын
Разобрался. Похоже надо было писать val db = NoteDatabase.getDatabase(view.context) вместо val db = NoteDatabase.getDatabase(this) при использовании фрагментов
а что если при создании нового проекта не выходит вообще room. версия студио - iguana. Как быть?
@NecoRuChannel
4 ай бұрын
Там просто пиши как раньше, не обращай внимание что остальные зависимости по другому. Я сейчас записываю урок об этом. Чуть позже уже загружу
Отличные уроки! Занимаюсь ремонтами и разработал для себя приложение за 2.5 месяца абсолютно с нуля. Динамичный прайс с категориями и сортировкой, ведение и просчет заказов согласно прайса, заметки, каталог материалов, контакты с метками, уведомления по заказам и т.д.. Сейчас планирую смотреть уроки по погодному приложению, так как буду писать под себя для морской рыбалки)) 👍
@user-rw8zs7vz9u
Жыл бұрын
Чувак, я уже пол года учусь, но своего ещё ничего не написал, если у тебя такие успехи в программировании, то может нах этот ремонт и лучше пойдешь в разработку приложений???
@карнас
Жыл бұрын
@@user-rw8zs7vz9u суть в том, что учиться нужно на том, что нужно тебе самому. На всякой фигне, аля (сделай свое первое приложение за 5 минут!) - ничего не выйдет.. Набросать проект, задаться целью и реализовывать смотря ютуб и читая доки
@thejekashoww
Жыл бұрын
@@карнас спасибо большое, очень полезный совет! Теперь понимаю, почему нет мотивации, желания обучаться...поскольку нет своей (!) цели, сделать свою прогу для своих нужд! Благодарю🙏
@карнас
Жыл бұрын
@@thejekashoww , спасибо! Абсолютно верно, пошаговые уроки типа "сделай приложение за 15 уроков", нужны для понимания самих процессов. Если нет своей цели, все бестолково..
@thejekashoww
Жыл бұрын
@@user-rw8zs7vz9u Друг, ты через пол года получается не получил никаких практических навыков..?
годно. как насчет гайда по созданию VPN приложения? с нынешними событиями это будет более чем актуально)
Привет А можешь записать видос как делать красивые заметки?
Выдало ошибку вот такую. Как устанавливать версии в Игуане я понял. И всё равно как пытаюсь изучить ROOM всегда какаета ошибка которую я пока не могу сам решить. Caused by: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':app:debugCompileClasspath'.
@luide2167
3 ай бұрын
Надо было сделать RebuildProject
Добрый день, у меня при создание binding, не показывает binding=ActivityMainBanding? Почему так?
@NecoRuChannel
10 ай бұрын
В новой версии АС пишем viewBinding = true в файле build.gradle раньше было без равно
Спасибо автору канала ! Кто сталкивался с такой проблемой, помогите решить. Plugin [id: 'com.android.application', version: '7.3.0', apply: false] was not found in any of the following sources: Плагин Android Gradle не найден ни в одном из следующих источников
Здравствуйте, в самом начале при добавлении плагина id ‘kotlin-kapt’ и библиотеки kapt ‘androidx.room:room-compiler:2.5.1’ синхронизация проходит без ошибок. Но при запуске виртуального устройства всегда выходит ошибка: “Задача compileDebugJavaWithJavac (текущая цель - 1.8) и задача kaptGenerateStubsDebugKotlin (текущая цель - 17). Целевая совместимость jvm должна быть установлена на одну и ту же версию Java.” Подскажите пожалуйста, как решить этот вопрос с совместимостью?
@NecoRuChannel
Жыл бұрын
в build.gradle (Module) выбери: compileOptions { sourceCompatibility JavaVersion.VERSION_17 targetCompatibility JavaVersion.VERSION_17 } kotlinOptions { jvmTarget = '17' } должно помочь
@Muhomor2003
Жыл бұрын
@@NecoRuChannel Спасибо от всей души, помогло!
@NecoRuChannel
Жыл бұрын
@@Muhomor2003 Я рад что помогло!
3 вопроса: 1) Почему при указании id в дата классе мы не используем ColumnInfo вместе с PrimaryKey? 2) Почему в дата классе используем var, а не val? 3) Какой стек технологий у вашего приложения с платных уроков? (список покупок + блокнот)
@NecoRuChannel
8 ай бұрын
1 - ColumnInfo нужно только когда хотим чтоб название полей в БД и название переменных было разным. Например ты создаешь БД и используешь в андроид но в БД у тебя поле называется name а в Entity хочешь назвать переменную myName в таком случае будет ошибка, но это можно решить используя ColumnInfo. Если переменные в Entity и в БД не отличаются как в нашем случае то ColumnInfo не обязательно. 2 - в дата классе лучше использовать Val по возможности а изменять значения с помощью copy 3 - Используем Room persistence library, AdMob (3 вида разных реклам), паттерн МVVM, Billing library (встроенные покупки). Курс предназначен для более глубокого изучения Room (БД SQLite) на практике.
Жаль дб не сработало. Но что делать.
почему getAllItem не suspend функция( не запускается во второстепенном потоке)?
@NecoRuChannel
Жыл бұрын
потому что мы не используем корутины
👍👍👍
Как использовать в качестве имени таблицы переменную?
@NecoRuChannel
9 ай бұрын
Нельзя использовать переменную, для этого, таблица будет создана и нельзя ее изменить, можно только делая миграцию
Спасибо за ваши уроки :) Подскажите, а как мне вытащить в отдельную переменную данные с Room. Например я хочу вывести в отдельную переменную цену товара и в отдельную - его название Спасибо :)
@NecoRuChannel
8 ай бұрын
Привет, Entitie из Room это дата класс в котором уже есть переменные по это у из этого дата класса просто передаешь в нужную тебе переменную только в Dao пропиши функцию которая возвращает один элемент или бери нужный из полученного списка
@LokiDmytro
8 ай бұрын
@@NecoRuChannel Спасибо, Это я понял А можно подробнее с примером ;)
Здравствуйте, скажите пожалуйста, а можно добавить уже готовую бд в приложение на языке Котлин
@NecoRuChannel
Жыл бұрын
Да, конечно
@user-fb5bh1qh2r
10 ай бұрын
не подскажите как это сделать? Спасибо@@NecoRuChannel
@NecoRuChannel
10 ай бұрын
@@user-fb5bh1qh2r при создании БД прежде чем build() запускать есть функция createFromAssets в папку assets нужно добавить БД которую хочешь загрузить и чтоб таблицы и переменные все совпадали иначе работать не будет.
👍
Я вообще не понимаю, как оно может так работать с базой данных, ведь для работы с базами данных нужен удаленный хост и само подключение, но в этом случае куда сохраняются все данные? И почему даже не требует разрешения на доступ в интернет в манифесте
@NecoRuChannel
29 күн бұрын
Потому что это локальная БД на смартфоне
@ddd6355
29 күн бұрын
@@NecoRuChannel хм, ну а допустим, если с помощью неё писать авторизацию в большом проекте, и на одном телефоне человек зарегистрировался под данными, например, login и password123, то сможет ли он под такими данными войти с другого устройства? Или если это локальная БД, то только на своём?
@NecoRuChannel
29 күн бұрын
@@ddd6355 Локальная это как например твой дом 🏠. Твой дом это твой телефон, а в доме есть хранилище, и только ты можешь им пользоваться, у соседа свое хранилище. А вот БД на сервере это как общественна библиотека куда может придти кто угодно
Ошибок навыдавал. Еще в граблях не подключил дату. такого нет. И Flow покрасил красным.
@NecoRuChannel
7 ай бұрын
Смотри чтоб Flow был из пакета coroutine
Господа, если у кого-то выдавалась ошибка апп.*чететам связанное с датабайндинг дебаг*, то вот вам МОЁ решение. В активити у меня помимо основного констрейнлайаут был еще дополнительный (отвечал за визуал серой полосочки слева экрана), на котором находились тектовые плашки. Проблема была, блять, в этих самых плашечках. Рекомендую заместо удаления проекта к хуям просто очень хорошо проверить xml файлы активити.
Мне нравится видео, лёгкая информация для восприятия на русском языке
Здравствуйте Сергей! Я поражён вашим испанским языком, на вашем втором канале. Почему бы вам не поделится своими знаниями по Испанскому языку, и не обучать ему нас?
@NecoRuChannel
Жыл бұрын
Какие там знания, у меня акцент ужасный))
@Кай4ик
Жыл бұрын
@@NecoRuChannel Ну всё равно, если бы сделали курс по испанскому, то было бы хорошо его изучить)
@Кай4ик
Жыл бұрын
@@NecoRuChannel В любом случае, если у вас закончатся курсы, и идеи для новых видео, то вы обязательно вспомните и подумаете об этом 😉
@NecoRuChannel
Жыл бұрын
@@Кай4ик Обязатльно!😉
@discord4364
Жыл бұрын
@@NecoRuChannel Я вообще думал, что Сергей испанец с хорошим русским 😁
спасибо за урок,что то у меня - db.getDao().insertItem(item) - insertItem(красным,и как ставишь точку после db - то не ищет...)
@sports_and_humor
Жыл бұрын
Значит Dao не подключена, в базе данных MainDb перепиши abstract fun getDao(): com.example.*название поекта*.Dao или просто сотри и Dao и начни писать заново, он подскажет
@aftereffects-7483
Жыл бұрын
@@sports_and_humor спасибо