import Ġio . vertx . core . Future Ċ import Ġio . vertx . core . json . JsonArray Ċ import Ġio . vertx . ext . jdbc . JDBC Client Ċ import Ġio . vertx . ext . sql . ResultSet Ċ import Ġio . vertx . ext . sql . SQL Connection Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġmi ke Ġon Ġ 1 4 / 1 1 / 1 5 . Ċ Ġ*/ Ċ Ċ fun ĠJDBC Client . with Connection ( res : Ġ( SQL Connection ) Ġ-> ĠFuture < Unit >): ĠFuture < Unit > Ġ{ ĊĠĠĠ Ġval Ġfinished Ġ= ĠFuture . future < Unit >() ĊĠĠĠ Ġget Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it . succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconnection Ġ= Ġit . result () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdone Ġ= Ġres ( connection ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdone . set Handler Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAny way , Ġclose ! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconnection . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . succeeded ()) Ġfinished . complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġfinished . fail ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . fail ( it . cause ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfinished Ċ } Ċ Ċ fun ĠJDBC Client . query < T >( query : ĠString , Ġparams : ĠList < Any >, Ġrs Handler : Ġ( ResultSet ) Ġ-> ĠList < T >): ĠFuture < List < T >> Ġ{ ĊĠĠĠ Ġval Ġfuture Ġ= ĠFuture . future < List < T >>() ĊĠĠĠ Ġwith Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfinished Ġ= ĠFuture . future < Unit >() ĊĠĠĠĠĠĠĠ Ġit . query With Params ( query , ĠJson Array ( params ), Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrs Handler ( it . result ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuture . complete ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuture . fail ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . fail ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfinished ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfuture Ċ } Ċ fun ĠJDBC Client . query One < T >( query : ĠString , Ġparams : ĠList < Any >, Ġrs Handler : Ġ( ResultSet ) Ġ-> ĠT ): ĠFuture < T > Ġ{ ĊĠĠĠ Ġval Ġfuture Ġ= ĠFuture . future < T >() ĊĠĠĠ Ġwith Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfinished Ġ= ĠFuture . future < Unit >() ĊĠĠĠĠĠĠĠ Ġit . query With Params ( query , ĠJson Array ( params ), Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġrs Handler ( it . result ()); ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" query One Ġ=> Ġ$ result ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuture . complete ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( t : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfuture . fail ( t ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . cause (). printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . fail ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfinished ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġfuture Ċ } ĊĊ Ċ fun ĠJDBC Client . update ( query : ĠString , Ġparams : ĠList < Any >): ĠFuture < Unit > Ġ{ ĊĠĠĠ Ġreturn Ġwith Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfinished Ġ= ĠFuture . future < Unit >() ĊĠĠĠĠĠĠĠ Ġit . update With Params ( query , ĠJson Array ( params ), Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ERROR : Ġ$ query Ġ($ params )") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . cause (). printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . fail ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfinished ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠJDBC Client . execute ( query : ĠString ): ĠFuture < Unit > Ġ{ ĊĠĠĠ Ġreturn Ġwith Connection Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfinished Ġ= ĠFuture . future < Unit >() ĊĠĠĠĠĠĠĠ Ġit . execute ( query , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . succeeded ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . complete () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" ERROR : Ġ" Ġ+ Ġquery ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . cause (). printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinished . fail ( it . cause ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġfinished ĊĠĠĠ Ġ} Ċ }