Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВалерий Голованев
1 Annotated SQL Геннадий Дубина Android-разработчик, DataArt, Украина
3 Чего хочется Описываем схему один раз Описываем схему в одном месте Мало кода Легкость Читаемость
4 Создание схемы БД Написание скриптов руками Срипты/база в ресурсах Runtime framework для создания схемы Annotation processor
5 Inline SQLExternal SQLRFAnnotations Один раз +-++ В одном месте +/---+ Мало кода ---+ Легкость -+/-++ Читаемость -+++
6 Принцип описания схемы Таблица – интерфейс. –имя таблицы –имена колонок –path для провайдера Схема – класс/интерфейс со всеми таблицами
7 Annotation SQL Это не ORM Никакой магии Это утилита/плагин для сокращения количества кода Все можно посмотреть и потрогать Плагин для Eclipse Работает с ant Работает c Idea
8 #1 SQL – структура, которая описывает – таблица в – индекс на - – вьюшка в – запрос в контент провайдере
9 @ Schema Класс содержащий описание всех таблиц, вьюшек, запрос Атрибуты className dbName dbVersion
10 @Table Определяем –type [INTEGER, REAL, TEXT, ABORT, FAIL, IGNORE, REPLACE]
12 @Index Создаем индекс для таблички. Будет создан индекс с именем idx_ Атрибуты name columns
13 @PrimaryKey Создаем составной Primary Key для таблицы Атрибуты columns
14 @SimpleView Создаем view для выборки данных из нескольких таблиц/view Столбцы создаются с именем _ Атрибуты value – имя view
15 Join –joinTable – таблица которую присоединяем –joinColumn –onTableAlias – алиас таблицы к которой присоединяем –onColumn –type [INNER, LEFT, RIGHT, –joinTable – таблица переменной –onCondition – raw sql вашего условия –type [INNER, LEFT, RIGHT, - что – ничего не выбираем
17 @RawQuery Создаем sql запрос который будет выполняться в Content Provider. Как и view только с параметрами Атрибуты value – имя запроса
18 Валидация схемы Таблица без столбцов Более одного PrimaryKey для таблицы Индекс не содержит полей Дублирующиеся названия таблиц/вьюшек во вьюшке Существование колонок в таблицах/view Дублирующиеся alias во view Пустое название таблицы/столбца/индекса/вьюшки Индекс можно определить только для таблицы
19 #2 Content Provider Создаем полноценный провайдер с помощью нескольких строк при этом сохраняем human style Поддерживает: no-notify limit alternative notify uri bulkInsert triggers
20 – помечаем – таблица/вью доступно через контент – обработчик на действие с
21 @Provider Атрибуты: name schemaClass authority openHelperClass
22 @URI type [DIR, ITEM, DIR_AND_ITEM] сolumn – по умолчанию _id altNotify onlyQuery – по умолчанию false все опционально
23 Пример
24 @Trigger Атрибуты: name type [INSERT, DELETE, UPDATE, ALL] when [BEFORE, AFTER] Методы: on Inserted(ContentValues values) on Deleted(Uri uri, String selection, String[] selectionArgs) on Updated(Uri uri, ContentValues values, String selection, String[] selectionArg)
26 Human Style
29 Вопросы?
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.