рдПрдиреЛрдЯреЗрдЯреЗрдбрдПрд╕рдХреНрдпреВрдПрд▓: рд╕реНрдХреАрдорд╛ + рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛

рдЕрдВрдд рдореЗрдВ рдПрдиреЛрдЯреЗрдЯреЗрдбрдПрд╕рдХреНрдпреВрдПрд▓ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдореЗрдВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХрд╛ рд╡рд░реНрдгрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд╛рд░реЛрдВ рдУрд░ рд╕реЗ рдорд┐рд▓рд╛

рдШреЛрд╖рдгрд╛:
1. рдкреНрд▓рдЧрдЗрди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
2. рд╕реНрдХреАрдорд╛ рдПрдиреЛрдЯреЗрд╢рди рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди
3. рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреНрдпрд╛ рд╣реИ
4. рд╣рдо рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ

1. рдкреНрд▓рдЧрд┐рди


рдкреНрд▓рдЧрдЗрди рдЕрджреНрдпрддрди рд╕рд╛рдЗрдЯ
рдЕрдм рдпрд╣ рдЕрдкрдбреЗрдЯ рд╕рд╛рдЗрдЯ рдХреЗ рд╕рд╛рде рдЧреНрд░рд╣рдг рдХреЗ рд▓рд┐рдП рдПрдХ рдкреВрд░реНрдг рдкреНрд▓рдЧ-рдЗрди рд╣реИ

рдкрде рдмрдирд╛рдПрдВ-> рд▓рд╛рдЗрдмреНрд░реЗрд░реА-> рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬреЛрдбрд╝реЗрдВ
рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рдЕрдм рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдбрд╛рд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдкреНрд▓рдЧрдЗрди рдЙрдиреНрд╣реЗрдВ рдЖрдкрдХреЗ рд╕рд╛рде рд▓реЗ рдЬрд╛рддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЧреБрдгреЛрдВ рдореЗрдВ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдиреЛрдЯреЗрдЯреЗрдб SQL Libaray рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рд╣рдореЗрд╢рд╛ рдкреНрд▓рдЧрдЗрди рдХреЗ рдЕрдиреБрд░реВрдк рдПрдХ рдПрдкреАрдЖрдИ рд╣реЛрдЧрд╛ред

рдЪрд┐рддреНрд░, рдЯреЗрдмрд▓, рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдореНрдкреНрд▓реЗрдЯ
рдХреЛрдб рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рд░реВрдк рдореЗрдВ рдЧреНрд░рд╣рдг рдХреА рдЗрддрдиреА рдЕрдЪреНрдЫреА рдмрд╛рдд рд╣реИред рдПрдХ рдЖрд░реЗрдЦ, рддрд╛рд▓рд┐рдХрд╛, рджреГрд╢реНрдп рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд▓рдЧрдЗрди рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЯреЗрдореНрдкрд▓реЗрдЯ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдФрд░ рдЗрди рдЯреЗрдореНрдкреНрд▓реЗрдЯреЛрдВ рдХреЛ рдХреЛрдб рдкреВрд░рд╛ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ ctrl + space рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Tabl рд▓рд┐рдЦреЗрдВ , рдХрд╝реАрдорддреА рдмрдЯрди рджрдмрд╛рдПрдВ рдФрд░ рддрд╛рд▓рд┐рдХрд╛ рджреЗрдЦреЗрдВ - AnnotatedSQL , рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреЗрдореНрдкрд▓реЗрдЯ рд╣реИред
рдордд рднреВрд▓рдирд╛: рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдЕрдЧрд▓реЗ рдлрд╝реАрд▓реНрдб рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреИрдм рдХреБрдВрдЬреА рджрдмрд╛рдПрдВ, рдФрд░ Enter рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рд╕рдорд╛рдкреНрдд рдХрд░ рджреЗрдЧрд╛ред

2. рдпреЛрдЬрдирд╛ рдореЗрдВ рдЕрджреНрдпрддрди


рд╢рд╛рдпрдж рдХреЗрд╡рд▓ рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рдмрджрд▓ рдЧрдпрд╛ рд╣реИ
рд╢рд╛рдорд┐рд▓ рд╣реЛрдВ
рдирд╛рдорд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ:
srcTable -> joinTable
srcColumn -> joinColumn
destTable -> onTableAlias
destColumn -> рдСрдирдХреЛрд▓реНрдпреВрдо
рдореБрдЭреЗ рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдФрд░ рдпрд╛рдж рд░рдЦрдиреЗ рд╡рд╛рд▓реА рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ onTableAlias рдПрдХ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕ рдкрд░ рдПрдХ рдЙрдкрдирд╛рдо рд╣реИред

рдФрд░ рдХрдИ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рдереЗ:

RawJoin
рдпрджрд┐ ON1 рдХреЙрд▓рдо 1 рд╕реЗ рднрд┐рдиреНрди рд╣реИ, рддреЛ рдпрд╣рд╛рдВ рдЬрд╛рдПрдВред рдЖрдк рдЙрд╕ рддрд╛рд▓рд┐рдХрд╛ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЬреБрдбрд╝рддреА рд╣реИ рдФрд░ рдЕрдкрдиреЗ рд╣рд╛рдереЛрдВ рд╕реЗ рд╕реНрдерд┐рддрд┐ рд▓рд┐рдЦрддреА рд╣реИред
рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ:
joinTable - рдЬреЙрдЗрди рдЯреЗрдмрд▓ рдХрд╛ рдирд╛рдо
рдЪрд╛рд▓реВ - рд╢рд░реНрдд

IgnoreColumns
рдЬрдм рд╣рдореЗрдВ рддрд╛рд▓рд┐рдХрд╛ рд╕реЗ рдПрдХ рдХреЙрд▓рдо рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реЛрддреА рд╣реИ, рддреЛ рд╣рдо рдЗрд╕реЗ рдПрдХ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рде рдЪрд┐рд╣реНрдирд┐рдд рдХрд░рддреЗ рд╣реИрдВред , рдЬреЙрдЗрди , рд░реЙрдЬрдЗрди рд╕реЗ рд▓рд╛рдЧреВ

RawQuery
рдХрд╣реАрдВ рднреА рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рдЕрдиреБрд░реЛрдз рдХрд░реЗрдВред рдЗрд╕ рдЪреАрдЬрд╝ рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдпрд╣ sql рдореЗрдВ рд╕реАрдорд┐рдд рджреГрд╢реНрдп рдХреЗ рдХрд╛рд░рдг рд╣реИред рджреГрд╢реНрдп рдЪрдпрди + рд╢рд╛рдорд┐рд▓ рд╣реИ, рдФрд░ рдлрд┐рд░ рдЬрд╣рд╛рдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рд▓реЗрдХрд┐рди рдЕрдХреНрд╕рд░ рдПрдХ рдЕрдиреБрд░реЛрдз рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ рдЬрд╣рд╛рдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдкреИрд░рд╛рдореАрдЯрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рд▓реЗрдХрд┐рди рдЗрд╕рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХрд╛ рдЖрд╡рд┐рд╖реНрдХрд╛рд░ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, ala sql functionред рдЬрд╣рд╛рдВ рд╕реНрд╡рд╛рднрд╛рд╡рд┐рдХ рд░реВрдк рд╕реЗ рд╣рдо рд╕реЗрдЯ рдорд╛рдкрджрдВрдбреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реИ ?
рдкреНрд░рд╛рдкреНрдд sql рдЕрдиреБрд░реЛрдз рдХрд╣реАрдВ рднреА рдирд╣реАрдВ рдорд┐рд▓рддрд╛ рд╣реИ, рдпрд╣ рдХреЗрд╡рд▓ рд╕реНрдерд┐рд░ рд░рд╣рддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ URI рджреНрд╡рд╛рд░рд╛ рдЦреАрдВрдЪрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ (рдореИрдВ рдЖрдкрдХреЛ рдмрд╛рдж рдореЗрдВ рдмрддрд╛рдКрдВрдЧрд╛)

RawQuery рдХреЛ SimpleView рдЬреИрд╕реЗ Join, Join рдФрд░ RawJoin рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ ,
рдпрд╛ рдЖрдк SqlQuery рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдХрдЪреНрдЪреЗ sql рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ

@RawQuery(ChatListQuery.QUERY_NAME) public static interface ChatListQuery{ String QUERY_NAME = "chatListQuery"; @SqlQuery String CHAT_LIST_QUERY = " some sql here" } 


3. рдореЗрд░реА рд╕рдордЭ рдореЗрдВ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреНрдпрд╛ рд╣реИ


Android рдХреЗ рд▓рд┐рдП рд╡рд┐рдХрд╕рд┐рдд рд╣реЛрдиреЗ рдХреЗ рдЕрдиреБрднрд╡ рдХреЗ рдЖрдзрд╛рд░ рдкрд░, рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдкрд╛рд╕ рдЕрддрд┐рд░рд┐рдХреНрдд рдЧреБрдг рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдПред рдФрд░ рдЕрддрд┐рд░рд┐рдХреНрдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЛ рдЙрд░реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдмрд╣реБрдд рд╕рд╛рд░реЗ "рдЦрд╛рд▓реА рд╕реНрдерд╛рди" рд╣реИрдВ - рдЯреБрдХрдбрд╝рд╛, рдкрд░рд┐рдореЛрдВ рд╕рдм рдХреБрдЫ рдпреВрдЖрд░рдПрд▓ рдореЗрдВ рдЬреИрд╕рд╛ рд╣реИред рддреЛ рдпрд╣рд╛рдБ рд╡рд╣реА рд╣реИ рдЬреЛ рдЖрдкрдХреЛ рдЖрдорддреМрд░ рдкрд░ рдЪрд╛рд╣рд┐рдП:

рдХреЛрдИ-рд╕реВрдЪрдирд╛
рдЬрдм рдЖрдк рдПрдХ рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдбреЗрдЯрд╛ рдХрд╛ рдПрдХ рдкреИрдХреЗрдЯ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рддреЛ рдкреНрд░рддреНрдпреЗрдХ рдкрдВрдХреНрддрд┐ рдХреЛ рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдпреВрдЖрдИ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдХреЛрдИ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдбрд╛рд▓рдиреЗ рдХреЗ рдмрд╛рдж рдЗрд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред

рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реВрдЪрдирд╛ uri
рдЕрдХреНрд╕рд░ рдПрдХ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ рдЬрдм рдПрдХ рдпреВрдЯреАрдЖрдИ рдХреЛ рдЬрд╝реЛрдЯреЛрдЯрд┐рдлрд╝рд┐рдЯ рдкрд░ рдирд┐рд░реНрднрд░ рдпреВрд░рд┐рдпрд╛ рдХреЛ рд╕реВрдЪрд┐рдд рдХрд░рдирд╛ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреГрд╢реНрдп рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рд╕реВрдЪреА рдХреЛ рднрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЗрдиреНрд╕рд░реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рддрд╛рд▓рд┐рдХрд╛ рдореЗрдВ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдЖрдкрдХреЛ рдпреВрдЖрдИ рдХреЛ рджреЗрдЦрдиреЗ рд╕реЗ рд╕реВрдЪрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдпрд╣ рд╡реИрдХрд▓реНрдкрд┐рдХ рдпреВрдЖрд░рдЖрдИ рд╣реИред

рд╕реАрдорд╛
рдЕрдиреБрд░реЛрдз рдкрд░ рддреБрдЪреНрдЫ рд╕реАрдорд╛

4. рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХрд╛ рд╕реГрдЬрди


рдореИрдВрдиреЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд▓рд┐рдП рдСрдЯреЛ-рдЬрдирд░реЗрдЯреЗрдб рд╕реНрдХреАрдо рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рд╕реЛрдЪрд╛: рдореЗрд░реЗ рдкрд╛рд╕ рджреБрдирд┐рдпрд╛ рдкрд░ рдХрдмреНрдЬрд╛ рдХрд░рдиреЗ, рдХрдВрдЯреЗрдВрдЯ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдмрдирд╛рдиреЗ рдФрд░ рдЕрдкрдирд╛ рдЬреАрд╡рди рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╕рдм рдХреБрдЫ рд╣реИред рдЬрд▓реНрджреА рд╕реЗ рдирд╣реАрдВ рдХрд╣рд╛ред рдПрдиреЛрдЯреЗрд╢рди рдХреА рдПрдХ рдЬреЛрдбрд╝реА рдФрд░ рдЖрдкрдХреЗ рдкрд╛рд╕ рдкреВрд░реНрдг-рдкреНрд░рджрд╛рддрд╛ рдкреНрд░рджрд╛рддрд╛ рд╣реИ + рдХреБрдЫ рдЙрдкрд╣рд╛рд░ред рдЦреИрд░, рдпрд╣ рд╢реБрд░реВ рд╣реБрдЖ!

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рдореБрдЭреЗ рдпрд╣ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдо рдПрдХ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВред рдкреНрд░рджрд╛рддрд╛ рдПрдиреЛрдЯреЗрд╢рди рд╣рдореЗрдВ рдЗрд╕рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ред

рдкреНрд░рджрд╛рддрд╛

рдирд╛рдо - рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдХреЗ рд▓рд┐рдП рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо
рдкреНрд░рд╛рдзрд┐рдХрд╛рд░ - рд╣рдореЗрдВ рдкреНрд░рджрд╛рддрд╛ рдХреЗ рдЕрдзрд┐рдХрд╛рд░ рдХреЛ рдЬрд╛рдирдирд╛ рд╣реЛрдЧрд╛ред
рд╕реНрдХреАрдорд╛рдХреНрд▓рд╛рд╕ рд╕реНрдХреАрдорд╛ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо рд╣реИред рдЦреБрд▓рд╛ рд╕рд╣рд╛рдпрдХ рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдкрд░ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
openHelperClass - рдЖрдк рдПрдХ рдЖрдВрддрд░рд┐рдХ рдУрдкрди рд╣реЗрд▓реНрдкрд░ рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рд╕реЗ рдЗрдирдХрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдкрдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдордЬрдмреВрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

 @Schema(className="FManagerSchema", dbName="fmanager.db", dbVersion=6) @Provider(authority="com.gdubina.fmanager.store.FManagerProvider", schemaClass="FManagerSchema", name="FManagerProvider", openHelperClass="CustomOpenHelper") public interface FManagerStore { 


рдЗрд╕рд▓рд┐рдП, рд╣рдордиреЗ рдХрд╣рд╛ рдХрд┐ рд╣рдо рдПрдХ рдХрдВрдЯреЗрдВрдЯ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЖрдЧреЗ рдХреНрдпрд╛ рд╣реИ?
рдореБрдЭреЗ рдХрд╣рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рд╣рдорд╛рд░реА рдЗрдХрд╛рдИ рдпреВрдЖрд░рдЖрдИ рдХреНрдпрд╛ рдЙрдкрд▓рдмреНрдз рд╣реЛрдЧреА - рд╣рдо рдЙрд╕реА рдирд╛рдо рдХреЗ рдпреВрдЖрд░рдЖрдИ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ

рдпреВрдЖрд░рдЖрдИ
рд╣рдо рддрд╛рд▓рд┐рдХрд╛, рджреГрд╢реНрдп рдпрд╛ рдХреНрд╡реЗрд░реА рдореЗрдВ рдПрдХ рдирд┐рд░рдВрддрд░ рдкрд░ рд▓рдЯрдХрд╛рддреЗ рд╣реИрдВред рдореБрдЭреЗ URI_CONTENT рдЬреИрд╕рд╛ рдХреБрдЫ рдкрд╕рдВрдж рд╣реИред
рд╕рднреА рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдпрд╣рд╛рдВ рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╡реЗ рд╣реИрдВред
рдкреНрд░рдХрд╛рд░ - uri рдкреНрд░рдХрд╛рд░ред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рдерд╛рдЧрдд рд╣реИ рдХрд┐ рдХрдИ рд░рд┐рдХреЙрд░реНрдб (рдбреАрдЖрдИрдЖрд░) рдпрд╛ рдПрдХ (рдЖрдЗрдЯрдо) рдпреВрдЖрд░рдЖрдИ рджреНрд╡рд╛рд░рд╛ рд╡рд╛рдкрд╕ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдЗрд╕ getType рд╡рд┐рдзрд┐ рдХреЛ рдпрд╛рдж рд░рдЦреЗрдВ? рдпрд╣рд╛рдБ рднреА рд╡рд╣реА рдмрд╛рдд рд╣реИред
onlyQuery - рдХреЗрд╡рд▓ рдХреНрд╡реЗрд░реА рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ, рджреГрд╢реНрдп рдФрд░ рдХреНрд╡реЗрд░реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдпреЛрдЧреНрдпред рдпрджрд┐ рдЖрдк рдЗрдиреНрд╕рд░реНрдЯ / рдбрд┐рд▓реАрдЯ / рдЕрдкрдбреЗрдЯ рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЕрдкрд╡рд╛рдж рдлреЗрдВрдХ рджреЗрдЧрд╛
рдХреЙрд▓рдо - рдбрд┐рдлрд╝реЙрд▓реНрдЯ "_id" рд╣реИред рджрд░рдЕрд╕рд▓, рдЬрдм рдЖрдк parh / # рдкреНрд░рдХрд╛рд░ рдХреЗ URI рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рджрд╛рддрд╛ ala _id = uri.getLastPathSegment () рдХрд╛ рдЪрдпрди рдХрд░рддрд╛ рд╣реИред рддреЛ рдпрд╣рд╛рдБ рдЖрдк рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдХрд┐рд╕ рдлреАрд▓реНрдб рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реИ
altNotify - uri рдХреА рдПрдХ рд╕реВрдЪреА рдЬрд┐рд╕реЗ рдкреНрд░рдорд╛рдгрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг:
рдЗрд╕ рддрд░рд╣ рд╕реЗ рд╣рдореЗрдВ рдЪреИрдВрдкрд┐рдпрдирд╢рд┐рдк рдЯреЗрдмрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдВрдЯ рдкреНрд░реЛрд╡рд╛рдЗрдбрд░ рдорд┐рд▓рд╛ред рд╕рдм рдХреБрдЫ рдЙрдкрд▓рдмреНрдз рд╣реИ - рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ, рдбрд╛рд▓реЗрдВ, рд╣рдЯрд╛рдПрдВ, рдЕрдкрдбреЗрдЯ рдХрд░реЗрдВ

 @Table(ChempTable.TABLE_NAME) public static interface ChempTable{ @URI String CONTENT_PATH = "chemps"; String TABLE_NAME = "chemp_table"; @PrimaryKey @Column(type = Type.INTEGER) String ID = "_id"; @Column(type = Type.TEXT) String TITLE = "title"; @Column(type = Type.TEXT) String CHEMP_KEY = "CHEMP_KEY"; } 


рдФрд░ рдпрд╣рд╛рдВ рд╕рдВрджреЗрд╢ рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рд╣реИред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ, рдпрд╣рд╛рдВ рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдпреВрдЖрд░рдЖрдИ рд╣реИрдВ
1. рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП URI_CONTENT рд╕реНрд╡рдпрдВ
2. рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП URI_MESSAGES_BY_USER, рдмрд╕ рдпрд╣рд╛рдБ рдХреЙрд▓рдо = Message.FROM_ID

 @Table(Message.TABLE_NAME) @PrimaryKey(columns = {Message.USER_ID, Message.ID}) public static interface Message{ @URI(altNotify={MessageChatView.URI_CONTENT, ChatListQuery.URI_CONTENT, URI_RECALC_MESSAGE_PATH}) String URI_CONTENT = "message"; @URI(type=URI.Type.ITEM, altNotify={Message.URI_CONTENT, MessageChatView.URI_CONTENT, ChatListQuery.URI_CONTENT, URI_RECALC_MESSAGE_PATH}, column=Message.FROM_ID) String URI_MESSAGES_BY_USER = "message_by_user"; } 


рдпрд╣ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдХрдиреЗрдХреНрд╢рди рдкреНрд░рджрд╛рддрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╣реИред рд╕рд┐рд░реНрдл рджреЛ рдПрдиреЛрдЯреЗрд╢рди!

рд▓реЗрдХрд┐рди рдпрд╣ рд╕рдм рдирд╣реАрдВ рд╣реИ, рдЕрдЧрд░ рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдХреБрдЫ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддреЛ рдХреНрдпрд╛ рдХрд░реЗрдВ? рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЬреЛрдбрд╝рд╛ - рд╡реЗ рдЧрдП рдФрд░ рдПрдХ рдЕрд╡рддрд╛рд░ рдЕрдкрд▓реЛрдб рдХрд┐рдпрд╛ред рдмрдбрд╝реЗ рд╡рд░реНрдЧ рдореЗрдВ рдЯреНрд░рд┐рдЧрд░ рдЬреИрд╕реА рдХреЛрдИ рдЪреАрдЬ рд╣реЛрддреА рд╣реИ - рд╡реЗ рдХреБрдЫ рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдПрдиреЛрдЯреЗрд╢рди рдХреЛ рд╣реА рдЯреНрд░рд┐рдЧрд░ рдХрд╣рд╛ред рдкреНрд░рджрд╛рддрд╛ рдореЗрдВ рдПрдХ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╡рд┐рдзрд┐ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА, рдЬрд┐рд╕реЗ рдЖрдкрдХреЛ рдСрдЯреЛрдЧреЗрдиреЗрд░реЗрдЯреЗрдб рдХреНрд▓рд╛рд╕ рдХреЗ рд╡рд╛рд░рд┐рд╕ рдореЗрдВ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рдирд╛ рд╣реЛрдЧрд╛

рдЙрддреНрдкреНрд░реЗрд░рдХ
рдпреВрд░реА рдкрд░ рд▓рдЯрдХрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рддрд╛рд▓рд┐рдХрд╛ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рдиреЗ рдкрд░ рд╡рд┐рдзрд┐ рдХреЙрд▓ рд╣реЛрддреА рд╣реИ
рдирд╛рдо - рдЯреНрд░рд┐рдЧрд░ рдХрд╛ рдирд╛рдо, рд╡рд┐рдзрд┐ рдирд╛рдо рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рдХрдм - рдЬрдм рддрд╛рд▓рд┐рдХрд╛ рдХреЗ рд╕рд╛рде рдпрд╛ рдмрд╛рдж рдореЗрдВ рдХрд╛рд░реНрд░рд╡рд╛рдИ рд╕реЗ рдкрд╣рд▓реЗ рд╡рд┐рдзрд┐ рдХреЛ рдХреЙрд▓ рдХрд░рдирд╛ рд╣реИред
рдЯрд╛рдЗрдк рдХрд░реЗрдВ - рдХреМрди рд╕реА рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рдЬрд╡рд╛рдм рджреЗрдирд╛ рд╣реИ - рд╕рдореНрдорд┐рд▓рд┐рдд рдХрд░реЗрдВ / рд╣рдЯрд╛рдПрдВ / udapte рдпрд╛ рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ

рд╡рд┐рдзрд┐ рдирд╛рдо рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рдкреИрдЯрд░реНрди рджреНрд╡рд╛рд░рд╛ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ
  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){} 


рдпрджрд┐ рдЖрдкрдХреЛ рдХрдИ рдЯреНрд░рд┐рдЧрд░реНрд╕ рд▓рдЯрдХрд╛рдП рдЬрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рддреЛ рдЯреНрд░рд┐рдЧрд░ рдПрдиреЛрдЯреЗрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдЯреНрд░рд┐рдЧрд░реНрд╕ рд╕реЗ рднрд░реЗрдВред

рдПрдХ рдЙрджрд╛рд╣рд░рдг:
 @Table(User.TABLE_NAME) public static interface User{ @Trigger(type=Trigger.Type.INSERT, name="user", when=When.BEFORE) @URI(altNotify={SuggestionView.URI_CONTENT, MessageChatView.URI_CONTENT, ChatListQuery.URI_CONTENT}) String URI_CONTENT = "user"; 


рдФрд░ рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдкреНрд░рджрд╛рддрд╛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ рджрд┐рдЦрддрд╛ рд╣реИ

 public class AppProvider extends AppAutoProvider { @Override protected void onUserBeforeInserted(ContentValues values) { ................. } 


рд╕реВрдЪрдирд╛ рдХрд╛ рд╕рд╣реА рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ?

рдпрджрд┐ рдЖрдк uri рдФрд░ рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдЙрдЪреНрдЪрд╛рд░рдг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐ notifyUri(ContentResolver cr, Uri uri) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ

рдкреНрд░рджрд╛рддрд╛ рд╕реЗ рд╕реНрдЯреИрдЯрд┐рдХрд▓реА рд╡рд┐рдзрд┐ рдкреИрдХ рдХрд░реЗрдВ

getContentUri(String path) - рдкрде рд╕реЗ рд╣рдореЗрдВ URI рдорд┐рд▓рддрд╛ рд╣реИ
getContentUriGroupBy(String path, String groupBy) - рдкрде рд╕реЗ рд╣рдореЗрдВ рд╕рдореВрд╣ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП URI рдорд┐рд▓рддрд╛ рд╣реИ
getContentUri(String path, long id) - URI рдкрде / # рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ
getContentUri(String path, String id) - URI рдкрде рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ #

getContentWithLimitUri(String path, int limit) - рдкрде + рд╕реАрдорд╛

getNoNotifyContentUri(String path) - рдкрде рд╕реЗ рд╣рдореЗрдВ рдмрд┐рдирд╛ рд╕реВрдЪрдирд╛ рдХреЗ URI рдорд┐рд▓рддрд╛ рд╣реИ
getNoNotifyContentUri(String path, long id) - рдмрд┐рдирд╛ рд╕реВрдЪрдирд╛ рдХреЗ URI рдкрде / # рдкреНрд░рд╛рдкреНрдд рдХрд░реЗрдВ

рдкреАрдПрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдиреЗ "рд▓рдбрд╝рд╛рдХреВ" рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрддреНрдкрд╛рджрди рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ
рд╡реНрдпрд╛рдХрд░рдг рдФрд░ рд╡рд░реНрддрдиреА рдХреЗ рд▓рд┐рдП PSS рдХреГрдкрдпрд╛ рдХрд┐рдХ рди рдХрд░реЗрдВ

Source: https://habr.com/ru/post/In166051/


All Articles