package Ġcom . ts uk ise ele . pot of u . map pers Ċ Ċ import Ġcom . ts uk ise ele . pot of u . models . Visitor Ċ import Ġorg . apache . ib atis . annotations . Insert Ċ import Ġorg . apache . ib atis . annotations . Param Ċ import Ġorg . apache . ib atis . annotations . Select Ċ import Ġorg . apache . ib atis . annotations . Select Key Ċ import Ġorg . springframework . stereotype . Repository Ċ Ċ @ Repository Ċ interface ĠVisitor Mapper Ġ{ ĊĠĠĠ Ġ@ Insert (""" ĠINSERT ĠINTO Ġvisitor ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ nickname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ email , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ domain , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ datetime ) ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠVALUES ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ#{ visitor Nick name }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ#{ visitor Email }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ#{ visitor Domain }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ#{ visitor Ip }, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ#{ visitor Datetime }) Ġ"" ") ĊĠĠĠ Ġ// Ġ æ³¨æĦı ï¼ļ @ Param æ³¨è§£ ä¼ļ å¯¼èĩ´ @ Select Key æ³¨è§£ çļĦ key Property å±ŀæĢ§ æĹłæ³ķ æŃ£ç¡® æĺłå°Ħ åĪ° çĽ®æłĩ å¯¹è±¡ ĊĠĠĠ Ġ@ Select Key ( statement Ġ= Ġ[" SELECT ĠLAST _ INSERT _ ID () "], Ġkey Property Ġ= Ġ" visitor Id ", Ġbefore Ġ= Ġfalse , Ġresult Type Ġ= ĠInt :: class ) ĊĠĠĠ Ġfun Ġinsert ( visitor : ĠVisitor ?): ĠInt ĊĊĠĠĠ Ġ@ Select (""" ĠSELECT ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ id , ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ nickname , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ email , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ domain , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ ip , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvisitor _ datetime ĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFROM Ġvisitor Ġ"" ") ĊĠĠĠ Ġfun Ġquery All (): ĠList < Visitor ?> ? ĊĊĠĠĠ Ġ@ Select (" SELECT Ġ* ĠFROM Ġvisitor ĠWHERE Ġvisitor _ id Ġ= Ġ#{ id }") ĊĠĠĠ Ġfun Ġquery Visitor ById (@ Param (" id ") Ġid : ĠInt ): ĠVisitor Ċ }