Your SlideShare is downloading. ×
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

"AnnotatedSQL - провайдер с плюшками за 5 минут" - Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон

1,039

Published on

"AnnotatedSQL - провайдер с плюшками за 5 минут" …

"AnnotatedSQL - провайдер с плюшками за 5 минут"
Геннадий Дубина, Senior Software Developer в DataArt, г. Херсон

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,039
On Slideshare
0
From Embeds
0
Number of Embeds
8
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. ANNOTATED SQL Геннадий Дубина
  • 2. Принцип описания схемы• Таблица – интерфейс• Содержит – имя таблицы – имена колонок – path для провайдера• Схема – класс/интерфейс со всеми таблицами
  • 3. Что хочется• Описываем схему один раз• Описываем схему в одном месте• Мало кода• Легкость• Читаемость
  • 4. Создание схемы БД• Написание скриптов руками• Срипты/база в ресурсах• Runtime framework для создания схемы• Annotation processor
  • 5. Inline SQL External SQL RF AnnotationsОдин раз + - + +В одном месте +/- - - +Мало кода - - - +Легкость - +/- + +Читаемость - + + +
  • 6. Annotation SQL• Это не ORM• Никакой магии• Это утилита/плагин для сокращения количества кода• Все можно посмотреть и потрогать• Работает с ant
  • 7. #1 SQL Schema• @Schema• @Table• @Index• @PrimaryKey• @SimpleView• @RawQuery
  • 8. @SchemaКласс содержащий описание всех таблиц ивьюшекАтрибуты • className • dbName • dbVersion
  • 9. @TableДефайним таблицу• @Column – type [INTEGER, REAL, TEXT, BLOB] – defVal• @Autoincrement• @NotNull• @PrimaryKey• @Unique[ROLLBACK, ABORT, FAIL, IGNORE, REPLACE]
  • 10. @IndexСоздаем индекс для таблички. Будет созданиндекс с именем idx_<name>Атрибуты• name• columns
  • 11. @PrimaryKeyСоздаем составной Primary Key для таблицыАтрибуты• collumns
  • 12. @SimpleViewСоздаем view для выборки данных из несколькихтаблиц/viewСтолбцы создаются с именем <alias>_<column>Атрибуты• value – имя view
  • 13. Дефайним вьюшку• @From• @ Join – joinTable – таблица которую присоединяем – joinColumn – onTableAlias – алиас таблицы к которой присоединяем – onColumn – type [INNER, LEFT, RIGHT, CROSS]• @RawJoin – joinTable – таблица переменной – onCondition – raw sql вашего условия – type [INNER, LEFT, RIGHT, CROSS]• @Columns - что выбираем• @IgnoreColumns – ничего не выбираем
  • 14. @RawQueryСоздаем sql запрос который будет выполняться вcontent provider.Как и view только с параметрамиАтрибуты• value – имя запросаПлюшки• @SqlQuery
  • 15. Валидация схемы• Таблица без столбцов• Более одного PrimaryKey для таблицы• Индекс не содержит полей• Дублирующиеся названия таблиц/вьюшек• Существование @From во вьюшке• Существование колонок в таблицах/view @From/@Join• Дублирующиеся alias во view
  • 16. • Пустое название таблицы/столбца/индекса/вьюшки• Индекс можно определить только для таблицы
  • 17. #2 Content ProviderСоздаем полноценный провайдер с помощьюнескольких строк при этом сохраняем human styleПоддерживает:• no-notify• limit• alternative notify uri• bulkInsert• triggers
  • 18. Аннотации• @Provider• @URI• @Trigger• @Triggers
  • 19. @ProviderАтрибуты:• name• schemaClass• authority• openHelperClass
  • 20. @URI• type [DIR, ITEM, DIR_AND_ITEM]• сolumn – по умолчанию _id• altNotify• onlyQuery – по умолчанию falseвсе опционально
  • 21. @ Trigger • name • type [INSERT, DELETE, UPDATE, ALL] • when [BEFORE, AFTER]on<Name><When>Inserted(ContentValues values){}on<Name><When>Deleted(Uri uri, String selection, String[] selectionArgs){}on<Name><When>Updated(Uri uri, ContentValues values, String selection, String[]selectionArg){}
  • 22. Human Style
  • 23. Вопросы?

×