рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдм рдХреЗ рд▓рд┐рдП рдХреЙрдореНрдкреИрдХреНрдЯ рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯ


рдореЗрд░реЗ рд▓рд┐рдП рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рдХрд╛ рдореБрдЦреНрдп рдХреНрд╖реЗрддреНрд░ рд╡реНрдпрд╛рдкрд╛рд░ рдореЗрдВ рд▓реЗрдЦрд╛рдВрдХрди рдХреЗ рд╕реНрд╡рдЪрд╛рд▓рди рдХреЗ рд▓рд┐рдП рд╕реЙрдлреНрдЯрд╡реЗрдпрд░ рдХрд╛ рд╡рд┐рдХрд╛рд╕ рд╣реИред рдореБрдЭреЗ 2009 рдореЗрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рдорд┐рд▓рд╛, рдЬрдм рдбреЗрд╕реНрдХрдЯреЙрдк рдХреЗ рд▓рд┐рдП рдЬрд╛рд░реА Openbravo POS рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде рдкреАрдбреАрдП рдХреЗ рд▓рд┐рдП рдПрдХ рд░реЗрд╕реНрддрд░рд╛рдВ рдореЙрдбреНрдпреВрд▓ рдерд╛ред Openbravo POS рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдЙрд╕ рд╕рдордп рдореБрдЦреНрдп рд╡рд┐рдЪрд╛рд░ рдЖрд╡реЗрджрди рдХреЗ рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рдЬрдЯрд┐рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ рдерд╛, рд╕рдВрдХреАрд░реНрдг рд╡реНрдпрд╛рдкрд╛рд░ рддрд░реНрдХ рдХреЛ рдПрдХ рдЕрд▓рдЧ рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕рдХрд╛ рдореБрдЦреНрдп рдЖрдХрд░реНрд╖рдг рдХрд┐рд╕реА рднреА рдбрд┐рд╡рд╛рдЗрд╕ рд╕реЗ рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдореНрдкреИрдХреНрдЯ рд╡реЗрдм рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдерд╛, рдФрд░ рди рдХреЗрд╡рд▓ "рдЬрд╛рд╡рд╛" рдЪрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ c рдЭреВрд▓рд╛ред рдЙрд╕реА рд╕рдордп, рдпрд╣ рдЕрдиреБрдорд╛рди рд▓рдЧрд╛рдпрд╛ рдЧрдпрд╛ рдерд╛ рдХрд┐ рд╕рд░реНрд╡рд▓реЗрдЯ рди рдХреЗрд╡рд▓ рдбреЗрд╕реНрдХрдЯреЙрдк рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рдорд╛рди рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдЧрд╛, рдмрд▓реНрдХрд┐ рдЗрд╕рдХреЗ рд▓рд┐рдП рдХрдВрдЯреЗрдирд░ рдХреЛ рднреА рдбреЗрд╕реНрдХрдЯреЙрдк рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХреАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╡рд╛рдИ рдХреА рд╕реАрдорд╛ рдХреЗ рднреАрддрд░ рдкреАрдУрдПрд╕ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рд╣реЛ рдЬрд╛рдПрдЧреАред рдлрд╛рдИ рдиреЗрдЯрд╡рд░реНрдХред рдЗрд╕ рд╡рд┐рдЪрд╛рд░ рдХреЛ рд╕рдореБрджрд╛рдп рдХреЗ рднреАрддрд░ рдФрд░ рдЕрдзрд┐рдХ рд╡рд┐рдХрд╕рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди 2012 рд╕реЗ рдореИрдВрдиреЗ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЬрд╛рд░реА рд░рдЦрд╛ рд╣реИ, рдФрд░ рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдкрд╛рдардХреЛрдВ рдХреЛ рдмрддрд╛рдКрдВрдЧрд╛ рдХрд┐ рдЫреЛрдЯреЗ рдЙрдиреНрдореБрдЦ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдХреЗ рддреЗрдЬреА рд╕реЗ рд╡рд┐рдХрд╛рд╕ рдХреЗ рд▓рд┐рдП рдПрдХ рдЯреВрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jQuery рдореЛрдмрд╛рдЗрд▓ рдФрд░ ORMLite рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдореЗрдВ рд╕реНрдЯреНрд░рд╛рдЗрдкреНрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВред рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдм рдкрд░ред

рдЙрдкрдХрд░рдг


рдЖрдорддреМрд░ рдкрд░, рдЬрдм рдЖрдк рдПрдХ рд╡рд┐рдХрд╛рд╕ рдЙрдкрдХрд░рдг рдХреА рддрд▓рд╛рд╢ рдореЗрдВ рд╣реЛрддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдХреБрдЫ рд╕рд╛рд░реНрд╡рднреМрдорд┐рдХ рдЦреЛрдЬрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ рдЖрдк рдПрдХ рдмрд╛рд░ рд╕реАрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдлреА рд╕рдордп рддрдХ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред 2012 рдореЗрдВ, рдпрд╣ рд╡рд╣реА рд╣реИ рдЬреЛ рдореИрдВрдиреЗ рддрдм рджреЗрдЦрд╛ рдерд╛ рдЬрдм рдореИрдВрдиреЗ рдУрдкрдирдмреНрд░реЙрд╡реЛ рдкреАрдУрдПрд╕ рд░реЗрд╕реНрддрд░рд╛рдВ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЛ рдлрд┐рд░ рд╕реЗ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдереАред рдпрд╣ рд╕реНрдЯреНрд░рдЯреНрд╕ 1 рдврд╛рдВрдЪреЗ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдерд╛, рдЬрд┐рд╕реЗ рдореИрдВ XML рд╕реНрдХреАрдорд╛ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд┐рд▓реНрдХреБрд▓ рднреА рдЦреБрд╢ рдирд╣реАрдВ рдерд╛, рд▓реЗрдХрд┐рди рднрд╛рдЧреНрдп рдХреЗ рд▓рд┐рдП, рдЙрд╕ рдкрд▓ рдореЗрдВ, рдореИрдВ рд░рд┐рдмреЗрд▓рд▓реИрдмреНрд╕ рд╕реЗ рдЬрд╛рд╡рд╛ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдкрд╛рд░рд┐рд╕реНрдерд┐рддрд┐рдХреА рддрдВрддреНрд░ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХрд┐рдпреЛрдВ рдХрд╛ рдЕрд╡рд▓реЛрдХрди рдХрд░ рдЖрдпрд╛ред рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рд╕реЗ рдПрдХ рдЕрдиреБрднрд╛рдЧ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рд╡реЗрдм рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреА рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдкрд┐рдд рдерд╛ред рд╕реНрдЯреНрд░рд┐рдкреНрд╕ рдХреЛ рдЗрд╕ 10 рдореЗрдВ рдПрдХ рд╕рдореНрдорд╛рдирдЬрдирдХ 2% рдХреЗ рд╕рд╛рде рд╢рд╛рдорд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред рдЙрдирдХреА рдорд╣рд╛рд░рдд рдХреЗ рд╕рд╛рде, рдореИрдВрдиреЗ рдЬрд╛рд╡рд╛ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рдореВрд▓ рдмрд╛рддреЗрдВ рд╕реАрдЦрдирд╛ рд╢реБрд░реВ рдХрд┐рдпрд╛ред рдЗрд╕рд╕реЗ рдореБрдЭреЗ рднреА рдорджрдж рдорд┐рд▓реА рдХрд┐ рдЙрд╕ рд╕рдордп рддрдХ "рд╕реИрдВрдбрдмреЙрдХреНрд╕" рдореЗрдВ рд╣реИрдмреЗ рдкрд░ рдЗрд╕ рд░реВрдкрд░реЗрдЦрд╛ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рд╕рдореАрдХреНрд╖рд╛ рд▓реЗрдЦ рдерд╛ред

рд╕реНрдЯреНрд░рд╛рдЗрдкреНрд╕ рдореЗрдВ, рд╕рдм рдХреБрдЫ рдХрдВрдЯреНрд░реЛрд▓рд░реНрд╕ (рдПрдХреНрд╢рдирдмреАрди) рдХреА рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рддрд░реНрдХ рдХреЗ рдЕрдзреАрди рд╣реИ, рдЬреЛ JSP рдкреЗрдЬ рдЯреЗрдореНрдкреНрд▓реЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЖрдЧреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдбреЗрдЯрд╛ рдореЙрдбрд▓ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИрдВред рдЪреВрдВрдХрд┐ рдореБрдЭреЗ рдПрдХ рдореЛрдмрд╛рдЗрд▓ рд╡реЗрдм рдЗрдВрдЯрд░рдлреЗрд╕ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдереА, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рд╡рд┐рдЬрд╝реБрдЕрд▓ рднрд╛рдЧ рдХреЗ рд▓рд┐рдП jQuery рдореЛрдмрд╛рдЗрд▓ рдХреЛ рдЪреБрдирд╛, рдЬрд┐рд╕рдореЗрдВ рд╕реЗ рдореБрдЦреНрдп рдкреНрд▓рд╕ рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рдЫреВрдиреЗ рдХреЗ рдмрд┐рдирд╛ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЧрддрд┐рд╢реАрд▓ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреЗрд╡рд▓ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреНрд╖рдорддрд╛ рд╣реИред

рдкрд╣рд▓рд╛ рддрддреНрд╡ рдЬреЛ рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ, рдореИрдВрдиреЗ рд╢реБрд░реВ рдореЗрдВ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ Persist ORM / DAO рдХрд╛ рдЪрдпрди рдХрд┐рдпрд╛ , рд▓реЗрдХрд┐рди рдЬрдм рдЗрд╕рдХреА рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдЕрдкрд░реНрдпрд╛рдкреНрдд рд╣реЛ рдЧрдИ, рддреЛ рдореИрдВрдиреЗ рдЗрд╕реЗ рдПрдХ рдЕрдзрд┐рдХ рд╢рдХреНрддрд┐рд╢рд╛рд▓реА ORMLite рдореЗрдВ рдмрджрд▓ рджрд┐рдпрд╛ред рдЪреБрдирд╛рд╡ рдореЗрдВ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рдереА рдХрд┐ рдореМрдЬреВрджрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдореЙрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдФрд░ SQL рдХреНрд╡реЗрд░реА рд▓рд┐рдЦрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХрд╛ рдЕрднрд╛рд╡, рдкреНрд░рдмрдВрдз рдХрд░рдирд╛, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреНрд░рд╛рдЗрдкреНрд╕ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣реИ, рдХреЗрд╡рд▓ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рд╕рд╛рдеред

рдореЙрдбрд▓-рд╡реНрдпреВ-рдирд┐рдпрдВрддреНрд░рдХ


рд╕реНрдЯреНрд░рд╛рдЗрдкреНрд╕ рдХреА рдХреБрдВрдЬреА рдПрдорд╡реАрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛ (рдореЙрдбрд▓-рд╡реНрдпреВ-рдХрдВрдЯреНрд░реЛрд▓рд░) рдкрд░ 100% рдлреЛрдХрд╕ рд╣реИред рдФрд░ 2005 рдореЗрдВ рдЗрд╕ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЛ рдмрдирд╛рдиреЗ рдХрд╛ рдореБрдЦреНрдп рд▓рдХреНрд╖реНрдп рдЬрд╛рд╡рд╛ рдИрдИ рдХреЗ рд▓рд┐рдП рдПрдорд╡реАрд╕реА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХрд╛ рдЕрдзрд┐рдХ рд╣рд▓реНрдХрд╛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рддреИрдпрд╛рд░ рдХрд░рдирд╛ рдерд╛, рдЬреЛ рддрдм рдХреЗ рд▓реЛрдХрдкреНрд░рд┐рдп рд╕реНрдЯреНрд░рдЯреНрд╕ рдврд╛рдВрдЪреЗ рдореЗрдВ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред 2008 рдореЗрдВ рд╕рдВрд╕реНрдХрд░рдг 1.5 рддрдХ, рдпрд╣ рд▓рдХреНрд╖реНрдп рд╕реНрдЯреНрд░рд╛рдЗрдкреНрд╕ рд▓реЗрдЦрдХреЛрдВ рджреНрд╡рд╛рд░рд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рд╛рд╕рд┐рд▓ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ рдФрд░ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рдмреАрдЪ рдЗрд╕ рдврд╛рдВрдЪреЗ рдХреЛ рд▓реЛрдХрдкреНрд░рд┐рдпрддрд╛ рд╣рд╛рд╕рд┐рд▓ рдХрд░рдирд╛ рд╢реБрд░реВ рд╣реЛ рдЧрдпрд╛ рдерд╛ред

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

рдбреЗрдЯрд╛ рд╕реЛрд░реНрд╕, рд╕реЛрд░реНрд╕ SQL тАЛтАЛрдЯреЗрдмрд▓
CREATE TABLE PRODUCTS ( ID VARCHAR(255) NOT NULL, NAME VARCHAR(255) NOT NULL, CODE VARCHAR(255) NOT NULL, PRICESELL DOUBLE NOT NULL, CATEGORY VARCHAR(255) NOT NULL, PRIMARY KEY (ID), CONSTRAINT PRODUCTS_FK_1 FOREIGN KEY (CATEGORY) REFERENCES CATEGORIES(ID) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE UNIQUE INDEX PRODUCTS_CODE_INX ON PRODUCTS(CODE); CREATE UNIQUE INDEX PRODUCTS_NAME_INX ON PRODUCTS(NAME); 


ORMLite рдХреЗ рд▓рд┐рдП рдПрдиреЛрдЯреЗрд╢рди рдбреЗрдЯрд╛ рдореЙрдбрд▓
 @DatabaseTable(tableName = "PRODUCTS") public class Product { public static final String ID = "ID"; public static final String NAME = "NAME"; public static final String CODE = "CODE"; public static final String PRICESELL = "PRICESELL"; public static final String CATEGORY = "CATEGORY"; @DatabaseField(generatedId = true, columnName = ID) private UUID id; @DatabaseField(columnName = NAME, unique = true, canBeNull = false) private String name; @DatabaseField(columnName = CODE, unique = true, canBeNull = false) private String code; @DatabaseField(columnName = PRICESELL, canBeNull = false) private BigDecimal pricesell; @DatabaseField(foreign = true, columnName = CATEGORY, foreignColumnName = ProductCategory.ID, foreignAutoRefresh = true, canBeNull = false) private ProductCategory productCategory; // ... //   get  set. // ... } 



рд╢реБрд░реБрдЖрдд рдореЗрдВ, ORMLite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдбреЗрдЯрд╛ рдореЙрдбрд▓ рдХреА рд╕рдВрд░рдЪрдирд╛ рдФрд░ рд╕рдВрдмрдВрдзрдкрд░рдХ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЗ рд╕рд╛рде рдЗрд╕рдХрд╛ рд╕рдВрдмрдВрдз (рддрд╛рд▓рд┐рдХрд╛ рдХрд╛ рдирд╛рдо рдФрд░ columnName рдлрд╝реАрд▓реНрдб) tableName ред рдлрд┐рд░, рдЧреЗрдЯрд░реНрд╕ рдФрд░ рд╕реЗрдЯрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ, рдореЙрдбрд▓ рд╕рд░реНрд╡рд▓реЗрдЯ рдХреА рд╢реЗрд╖ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред

рдбреЗрдЯрд╛ рдЗрдирдкреБрдЯ / рдЖрдЙрдЯрдкреБрдЯ рдХреЗ рд▓рд┐рдП рд╕реНрдЯреНрд░рд┐рдкрд░реНрд╕ рдХрдВрдЯреНрд░реЛрд▓рд░
 public class ProductCreateActionBean extends ProductBaseActionBean { private static final String PRODUCT_CREATE = "/WEB-INF/jsp/product_create.jsp"; @DefaultHandler public Resolution form() { //    . return new ForwardResolution(PRODUCT_CREATE); } public Resolution add() { // ... //    ,    . // ... } @ValidateNestedProperties({ @Validate(on = {"add"}, field = "name", required = true, trim = true, maxlength = 255), @Validate(on = {"add"}, field = "code", required = true, trim = true, minlength = 8, maxlength = 13), @Validate(on = {"add"}, field = "priceSell", required = true, converter = BigDecimalTypeConverter.class), @Validate(field = "productCategory.id", required = true, converter = UUIDTypeConverter.class) }) @Override public void setProduct(Product product) { super.setProduct(product); } } 


рдирд┐рдпрдВрддреНрд░рдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рджреНрд╡рд╛рд░рд╛ рдкреНрд░реЗрд╖рд┐рдд рдбреЗрдЯрд╛ рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдПрдиреЛрдЯреЗрд╢рди рдХреЗ рдЕрдиреБрд╕рд╛рд░ рдЙрдиреНрд╣реЗрдВ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддрд╛ рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, Resolution form() рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рддреЗ рд╣реБрдП, рдореБрдЦреНрдп рдлрд╝реАрд▓реНрдб productCategory.id рдХрд╛ рдорд╛рди рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ productCategory.id , рдпрд╣ UUIDTypeConverter рдорд╛рдзреНрдпрдо рд╕реЗ рдЗрд╕реЗ рдкрд╛рд╕ рдХрд░рддрд╛ рд╣реИ, рдЕрдЧрд░ рдпрд╣ UUID рдХреЗ рд▓рд┐рдП рд╕реНрд╡реАрдХрд╛рд░реНрдп рдорд╛рдирджрдВрдбреЛрдВ рдХреЛ рдкреВрд░рд╛ рдХрд░рддрд╛ рд╣реИред

JQueryMobile рдорд╛рд░реНрдХрдЕрдк рдФрд░ рдзрд╛рд░рд┐рдпреЛрдВ рдХреНрд╖реЗрддреНрд░реЛрдВ рдХреЗ рд╕рд╛рде JSP рдЯреЗрдореНрдкрд▓реЗрдЯ
 <!--   --> <stripes:layout-component name="content"> <stripes:errors /> <stripes:messages /> <stripes:form action="/ProductCreate.action?add"> <div> <stripes:hidden name="product.productCategory.id" value="${actionBean.product.productCategory.id}"/> </div> <ul data-role="listview" data-inset="true"> <li class="ui-field-contain"> <stripes:label name="label.Product.name" for="productName" /> <input name="product.name" id="productName" type="text" data-clear-btn="true"> </li> <li class="ui-field-contain"> <stripes:label name="label.Product.code" for="productCode" /> <input name="product.code" id="productCode" type="text" data-clear-btn="true"> </li> <li class="ui-field-contain"> <stripes:label name="label.Product.price" for="productPrice"/> <input name="product.priceSell" id="productPrice" type="number" step="0.01" value="0.00" data-clear-btn="true"> </li> <li class="ui-body ui-body-b"> <fieldset class="ui-grid-a"> <div class="ui-block-a"> <sdynattr:submit name="add" data-theme="a"/> </div> <div class="ui-block-b"> <sdynattr:reset name="clear" data-theme="b"/> </div> </fieldset> </li> </ul> </stripes:form> </stripes:layout-component> <!--   --> 



рдкреГрд╖реНрда рдЯреЗрдореНрдкрд▓реЗрдЯ рдореЗрдВ, jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдорд╛рд░реНрдХрдЕрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрдирдкреБрдЯ рдбреЗрдЯрд╛ рдХреЗ рдкреНрд░рд╛рд░рдВрднрд┐рдХ рд╕рддреНрдпрд╛рдкрди рдХреЗ рд▓рд┐рдП рднреА рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдПрдХ рджреГрд╢реНрдп рд░реВрдк рдореЗрдВ, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдкрд╛рда рдФрд░ рд╕рдВрдЦреНрдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рдореЛрдмрд╛рдЗрд▓ рдбрд┐рд╡рд╛рдЗрд╕ рдкрд░ рд╡рд┐рднрд┐рдиреНрди рдХреАрдмреЛрд░реНрдб рдХреА рдкреЗрд╢рдХрд╢ ( input type рдкреИрд░рд╛рдореАрдЯрд░ "text" рдпрд╛ "number" ) рд╣реИред

рдпрд╣ рдХрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рд╣реИ?


рдкрд┐рдЫрд▓реЗ 2013 рдХреЗ рдЕрдВрдд рдореЗрдВ, рд░реЗрдмреЗрд▓рд▓реИрдмреНрд╕ рдиреЗ рднрд╡рд┐рд╖реНрдп рдХреЗ 2014 рдореЗрдВ рдлреНрд░реЗрдорд╡рд░реНрдХ рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╕рдВрднрд╛рд╡рдирд╛рдУрдВ рдХреА рдПрдХ рдирдИ рд╕рдореАрдХреНрд╖рд╛ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХреАред рдЗрд╕ рд╕рдореАрдХреНрд╖рд╛ рдореЗрдВ рд╕реНрдЯреНрд░рд╛рдЗрдкреНрд╕ рдХреЛ рд╢рд╛рдорд┐рд▓ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдЕрдзрд┐рдХрд╛рдВрд╢ рдзреНрдпрд╛рди рдЗрд╕рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЕрдзрд┐рдХ рдзреНрд░реБрд╡реАрдп рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдкрд░ рдзреНрдпрд╛рди рджрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЬреИрд╕реЗ рдХрд┐ рд╕реНрдкреНрд░рд┐рдВрдЧ, рдЧреНрд░реЗрд▓реНрд╕ рдпрд╛ рд╡рд╛рдбрд┐рдиред рд▓реЗрдХрд┐рди рдпрд╣ рдореБрдЭреЗ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдпрджрд┐ рдЖрдк рдЙрд╕рдХреЗ рд╕рд╛рде рдорд┐рд▓рдХрд░ jQuery Mobile рдФрд░ ORMLite рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╡рд╣ рдЕрдм рдЬрд╛рд╡рд╛ рдбреЗрд╡рд▓рдкрд░ рдЯреВрд▓ рдореЗрдВ рдЕрдкрдирд╛ рд╕реНрдерд╛рди рдЦреЛрдЬ рд▓реЗрдЧрд╛ред RebelLabs рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рдЖрд╡реЗрджрди рдХреЗ 7 рдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕реЗ рдХрдо рд╕реЗ рдХрдо 4 рдореЗрдВ , рдЖрдк рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдлреА рдЖрддреНрдорд╡рд┐рд╢реНрд╡рд╛рд╕ рдорд╣рд╕реВрд╕ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
  1. CRUD рдЕрдиреБрдкреНрд░рдпреЛрдЧ - рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдерд╛, рдЕрдЧрд░ рд╕рдм рдХреБрдЫ рдХреНрд░рдорд┐рдХ рд░реВрдк рд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдФрд░ рдПрдХ рдпреЛрдЬрдирд╛ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рдЦрд░рд╛рдм рдХрд░рдирд╛ рдмрд╣реБрдд рдореБрд╢реНрдХрд┐рд▓ рд╣реИред рдбрд┐рдЬрд╛рдЗрдирд┐рдВрдЧ рдореЗрдВ рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдкреНрд░рддреНрдпреЗрдХ рдирд┐рдпрдВрддреНрд░рдХ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдпрдерд╛рд╕рдВрднрд╡ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рднреАрдбрд╝ рдирд╣реАрдВред
  2. рдореЛрдмрд╛рдЗрд▓ рдПрдкреНрд▓рд┐рдХреЗрд╢рди - рдпрд╣рд╛рдВ рдореБрдЦреНрдп рдмреЛрдЭ jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рд░рд╣рддрд╛ рд╣реИ, рдЬрд╛рд╡рд╛ рдкреНрд░реЛрдЧреНрд░рд╛рдорд░ рдХреЗ рд▓рд┐рдП рдПрдХ рдирд┐рд╕реНрд╕рдВрджреЗрд╣ рдкреНрд▓рд╕ рд╣реИ рдХрд┐ рдПрдЪрдЯреАрдПрдордПрд▓ 5 рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдЖрдк рдЬрд╛рд╡рд╛рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдФрд░ рд╕реАрдПрд╕рдПрд╕ рдХреЛ рдирд╣реАрдВ рдЫреВ рд╕рдХрддреЗ рд╣реИрдВред
  3. рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкреНрд░реЛрдЯреЛрдЯрд╛рдЗрдк - рдпрд╣ рдореБрдЦреНрдп рдХрд╛рд░рдг рд╣реИ рдХрд┐ рдореИрдВ рдЗрд╕ рдЧреБрдЪреНрдЫрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдкреЛрд░реНрдЯрдлреЛрд▓рд┐рдпреЛ рдореЗрдВ 10 рдареАрдХ рд╕рд░реНрд╡рд▓реЗрдЯреНрд╕ рд╕реЗ рдЯрд╛рдЗрдк рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЖрдк рдЖрд╕рд╛рдиреА рд╕реЗ рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдШрдЯрдХреЛрдВ рдХреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╡реНрдпрд╛рд╡рд╕рд╛рдпрд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рде рдлреЗрд░рдмрджрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
  4. рдбреЗрд╕реНрдХрдЯреЙрдк рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЛ рдкреЛрд░реНрдЯ рдХрд░рдирд╛ - рдФрд░ рдпрд╣ рд╡рд╣ рдЬрдЧрд╣ рд╣реИ рдЬрд╣рд╛рдВ рдпрд╣ рд╕рдм рдореБрдЭрд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ рд╣реИ, рдФрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рд╣реИ рдХрд┐ рдореИрдВ рдЗрди рддреАрди рд░реВрдкрд░реЗрдЦрд╛рдУрдВ рдХреЗ рд╕рднреА рдорд┐рд╢реНрд░ рдзрд╛рддреБ рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред



рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╣реИ, 2014 рдореЗрдВ jQuery рдХреЗ рдореЛрдмрд╛рдЗрд▓ рд╕рдВрд╕реНрдХрд░рдг 1.4 рдХреЗ рд╕рд╛рде рдПрдХ рдирдпрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕, рдЙрд╕ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рд╕рд╛рде рддреБрд▓рдирд╛ рдореЗрдВ, рдЬреЛ рдУрдкрдирдмреНрд░реЛрд╡реЛ рдкреАрдУрдПрд╕ рдкреАрдбреАрдП рдореЙрдбреНрдпреВрд▓ 2009 рдореЗрдВ рдерд╛ред

рд▓реЗрдЦ рдХреЗ рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдХреЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд░реВрдк рдореЗрдВ, рдЙрддреНрдкрд╛рдж рд╕реВрдЪреА рдХреЗ рд▓рд┐рдП рдПрдХ рдЫреЛрдЯрд╛ рд╕рд╛ CRUD рд╕рд░реНрд╡рд▓реЗрдЯ рдкреНрд░реЛрдЬреЗрдХреНрдЯ: github.com/nordpos-mobi/product-catalog

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


All Articles