package Ġcom . github . p av pon n . todo . dao Ċ Ċ import Ġcom . github . p av pon n . todo . model . Todo Ċ import Ġcom . github . p av pon n . todo . model . Todo List Ċ import Ġorg . springframework . jdbc . core . Bean Property Row Mapper Ċ import Ġorg . springframework . jdbc . core . support . Jdbc Dao Support Ċ import Ġjavax . sql . DataSource Ċ Ċ /** Ċ Ġ* Ġ@ author Ġp av pon n Ċ Ġ*/ Ċ class ĠTodo Jdbc Dao ( dataSource : ĠDataSource ) Ġ: ĠJdbc Dao Support (), ĠTodo Dao Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO _ ALL Ġ= Ġ" select Ġ* Ġfrom ĠTod os " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO _ BY _ LIST _ ID Ġ= Ġ" select Ġ* Ġfrom ĠTod os Ġwhere Ġlist Id Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO _ DELETE Ġ= Ġ" delete Ġfrom ĠTod os Ġwhere Ġid Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO _ DELETE _ BY _ LIST Ġ= Ġ" delete Ġfrom ĠTod os Ġwhere Ġlist Id Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO _ INSERT Ġ= Ġ" insert Ġinto ĠTod os ( description , Ġdone , Ġlist id ) Ġvalues ( ?,?, ? )" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO _ UPDATE _ DONE Ġ= Ġ" update Ġtodos Ġset Ġdone Ġ= Ġ? Ġwhere Ġid Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO LIST _ ALL Ġ= Ġ" select Ġ* Ġfrom ĠTodo Lists " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO LIST _ BY _ ID Ġ= Ġ" select Ġ* Ġfrom ĠTodo Lists Ġwhere Ġid Ġ= Ġ? " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO LIST _ INSERT Ġ= Ġ" insert Ġinto ĠTodo Lists ( name ) Ġvalues (? )" ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSQL _ TODO LIST _ DELETE Ġ= Ġ" delete Ġfrom ĠTod ol ists Ġwhere Ġid Ġ= Ġ? " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġset DataSource ( dataSource ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Todos (): ĠList < Todo > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Todos By Request ( SQL _ TODO _ ALL , Ġempty Array ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Todos ( list Id : ĠInt ): ĠList < Todo > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Todos By Request ( SQL _ TODO _ BY _ LIST _ ID , ĠarrayOf ( list Id )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Todo ( description : ĠString , Ġlist Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template ?. update ( SQL _ TODO _ INSERT , Ġdescription , Ġfalse , Ġlist Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Todo ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template ?. update ( SQL _ TODO _ DELETE , Ġid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Todos ( list Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template ?. update ( SQL _ TODO _ DELETE _ BY _ LIST , Ġlist Id ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġupdate Done ( id : ĠInt , Ġdone : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template ?. update ( SQL _ TODO _ UPDATE _ DONE , Ġdone , Ġid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Todo Lists (): ĠList < Todo List > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Todo Lists By Request ( SQL _ TODO LIST _ ALL , Ġempty Array ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Todo List ( id : ĠInt ): ĠTodo List Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget Todo Lists By Request ( SQL _ TODO LIST _ BY _ ID , ĠarrayOf ( id ))[ 0 ] ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġadd Todo List ( name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template ?. update ( SQL _ TODO LIST _ INSERT , Ġname ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġdelete Todo List ( id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Template ?. update ( SQL _ TODO LIST _ DELETE , Ġid ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Todo Lists By Request ( sql : ĠString , Ġparams : ĠArray < Any >): ĠList < Todo List > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjdbc Template ?. query ( sql , Ġparams , ĠBean Property Row Mapper ( Todo List :: class . java )) Ġ?: Ġempty List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Todos By Request ( sql : ĠString , Ġparams : ĠArray < Any >): ĠList < Todo > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjdbc Template ?. query ( sql , Ġparams , ĠBean Property Row Mapper ( Todo :: class . java )) Ġ?: Ġempty List () ĊĠĠĠ Ġ} Ċ }