package Ġcom . example . tod olist Ċ Ċ import Ġorg . springframework . jdbc . core . Jdbc Template Ċ import Ġorg . springframework . jdbc . core . Row Mapper Ċ import Ġorg . springframework . stereotype . Repository Ċ Ċ @ Repository Ċ class ĠJdbc Task Repository ( private Ġval Ġjdbc Template : ĠJdbc Template ) Ġ: ĠTask Repository Ġ{ ĊĠĠĠ Ġprivate Ġval Ġrow Mapper Ġ= ĠRow Mapper < Task > Ġ{ Ġrs , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠ ĠTask ( rs . getLong (" id "), Ġrs . getString (" content "), Ġrs . getBoolean (" done ")) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate ( content : ĠString ): ĠTask Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template . update (" INSERT ĠINTO Ġtask ( content ) ĠVALUES Ġ(? )", Ġcontent ) ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠLong Ġ= Ġjdbc Template . query For Object (" SELECT Ġlast _ insert _ id () ") ĊĠĠĠĠĠĠĠ Ġreturn ĠTask ( id , Ġcontent , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate ( task : ĠTask ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template . update (" UPDATE Ġtask ĠSET Ġcontent Ġ= Ġ?, Ġdone Ġ= Ġ? ĠWHERE Ġid Ġ= Ġ?", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . content , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . done , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtask . id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠfindAll (): ĠList < Task > Ġ= ĊĠĠĠĠĠĠĠ Ġjdbc Template . query (" SELECT Ġid , Ġcontent , Ġdone ĠFROM Ġtask ", Ġrow Mapper ) ĊĊĠĠĠ Ġoverride Ġfun Ġfind ById ( id : ĠLong ): ĠTask ? Ġ= ĊĠĠĠĠĠĠĠ Ġjdbc Template . query (" SELECT Ġid , Ġcontent , Ġdone ĠFROM Ġtask ĠWHERE Ġid Ġ= Ġ?", Ġrow Mapper , Ġid ). first OrNull () Ċ }