Въведение в Android SQLite база данни



Блогът предоставя въведение в Android SQLite Database

Въведение в Android SQLite база данни

Базата данни на Android SQLite изисква много малко памет (около 250kb), която е достъпна на всички устройства с Android. Всяко устройство има вградена поддръжка за база данни SQLite, която автоматично се управлява на android от създаването, изпълнението до процеса на заявка.





SQLite е база данни с отворен код, достъпна във всяка база данни на Android. Той поддържа функции на база данни със стандартни отношения, като синтаксис на SQL, транзакции и SQL изрази. SQLite е значително по-леката версия на SQL базата данни, където повечето от SQL командите не се изпълняват на базата данни SQLite. След като SQLite е на място, е важно да се гарантира, че функция или команда са налични в SQLite само тогава могат да бъдат изпълнени.

Основните предимства на SQLite:



  • Това е лека база данни
  • Изисква много малко памет
  • Автоматично управлявана база данни

SQLite поддържа само 3 типа данни:

  • Текст (като низ) - за съхраняване на хранилище от тип данни
  • Цяло число (като int) - за съхраняване на цялостен първичен ключ
  • Реално (като двойно) - за съхраняване на дълги стойности

По принцип SQLite не проверява типовете данни сам по себе си. С други думи, каквито и типове данни да се използват, те се определят като валидни.

Например в този случай е обсъдена базата данни на кабелен оператор. Тук се добавя нова таблица с „текст“ в полето за име и полето с име на поле, носещо „текстово поле“. Създаден е тип данни с произволна стойност. Крайният резултат е тестова таблица с невалиден тип данни, която показва, че SQLite не проверява типа данни.



* Човек може да намери базата данни, като щракне върху пакета и получи достъп до папката с данни до папката на базата данни, която съдържа файла.

Забележка: Класът SQLiteOpen Helper се използва за управление на създаването на база данни и управлението на версиите.

Потребителски въпроси:

Промяната в резултата на db версията ли е промяна на версията на SQLite на обекта?

Няма промяна във версията на SQLite на обекта, тъй като единият обработва създаването / актуализирането на базата данни, а другият възпроизвежда данни, съхранявани в таблиците на базата данни. По този начин изобщо няма зависимост

Връщайки се, когато разширяваме клас SQLiteopenHelper, ние презаписваме методите Oncreate & OnUpgrade в този клас. Когато се осъществява достъп до базата данни на SQLite, понякога тя може да бъде бавна, в зависимост от сложността на заявката. Винаги се предпочита да се гарантира, че при изпълнение на SQL заявка се избягва най-малкото въздействие или заявки, изпълнявани в рекурсия. Също така е такасе препоръчва синхронизиране на базата данни.Тези методи се обработват автоматично или се извикват от рамката. Също така трябва да се отбележи, че всеки път, когато някой увеличи версията на DB, той автоматично ще извика onUpgrade.

Всеки път, когато се говори за клас на отворен помощник на SQLite, името и версията му на база данни се предават в конструктора на разширен клас.

Тук трябва да се вземат предвид две неща:

  • Извиква се метод OnCreate (), ако базата данни не съществува.
  • Извиква се метод OnUpgrade (), ако се актуализира версията на базата данни.

Отвореният помощен клас на SQLite дава името и версията в конструктора. Извиква се getwriteabledatabase () и ако базата данни не съществува, тя ще OnCreate. В случай, че базата данни съществува и версията е актуализирана, тя ще извика OnUpgrade ().

Дали тези методи са при първо извикване на db?

Нека вземем пример. След като инсталираме приложение, то ще създаде OnCreate и apk на метода се качва в Google play store. След като се изтегли последната версия на apk, той ще провери вече инсталираната база данни. Ако има по-висока версия, ще извика надстройка, ако не, тогава няма да направи нищо.

Въпрос на потребителя

Необходимо ли е да имате потребителско разрешение за надграждане на db версията?

роли и отговорности на системния администратор на linux

Не, разрешението не се изисква, тъй като работим върху ресурсите на приложението, не е нужно да търсим разрешение.

Въпрос на потребителя

Ако user1 е инсталирал моето приложение и това е надстроена версия за DB и впоследствие user2 инсталира ново приложение и user1 надгражда приложението. В такъв сценарий, ако се извика user1 при надстройка на версията и се извика метод за създаване на user2, всички ли методи от android?

Да, защото нямаме вече инсталирана версия на устройството. Няма значение, стига да няма по-ранна версия, инсталирана в устройството. Много прилича на боравене с рамката.

Въпрос на потребителя

Можем ли да имаме обекта на базата данни SQLite? Какво ще стане, ако моето db име имаконфликтс друг db name обект?

Няма значение, защото базата данни се намира в името на пакета на приложението, което не трябва да противоречи, дори ако е създадена подпапка със същото име. Има значение само на ниво корен и обработката на ниво корен се извършва с помощта на името на пакета. Трябва да се отбележи, че не можем да имаме две приложения с едно и също име на пакета, но можем да имаме 2 различни db имена при различни пакети. Базата данни SQLite се грижи за актуализиране, изтриване, вмъкване, заявка и затваряне и отваряне на операции с база данни с помощта на обекта.

Имате въпрос към нас? Споменете ги в раздела за коментари и ние ще се свържем с вас.

Подобни публикации: