package Ġio . project reactor . addons . kotlin . jdbc Ċ Ċ import Ġreactor . core . publisher . Flux Ċ import Ġreactor . core . publisher . Mono Ċ import Ġreactor . core . publisher . to Mono Ċ import Ġjava . io . InputStream Ċ import Ġjava . math . BigDecimal Ċ import Ġjava . sql . Connection Ċ import Ġjava . sql . PreparedStatement Ċ import Ġjava . sql . ResultSet Ċ import Ġjava . sql . Statement . RETURN _ GENERATED _ KEYS Ċ import Ġjava . time . LocalDate Ċ import Ġjava . time . LocalDateTime Ċ import Ġjava . time . Local Time Ċ import Ġjava . util .* Ċ import Ġjava . util . concurrent . atomic . Atomic Boolean Ċ import Ġjava . util . concurrent . atomic . Atomic Integer Ċ import Ġjavax . sql . DataSource Ċ Ċ fun ĠConnection . execute ( sql Template : ĠString ) Ġ= ĠUpdate Operation ( Ċĉ ĉ sql Template Ġ= Ġsql Template , Ċĉ ĉ connection Getter Ġ= Ġ{ Ġthis Ġ}, Ċĉ ĉ auto Close Ġ= Ġfalse Ċ ) Ċ Ċ fun ĠConnection . select ( sql Template : ĠString ) Ġ Ġ= Ċĉ ĉ Select Operation ( Ċĉĉĉ ĉ sql Template Ġ= Ġsql Template , Ċĉĉĉ ĉ connection Getter Ġ= Ġ{ Ġthis Ġ}, Ċĉĉĉ ĉ auto Close Ġ= Ġfalse Ċĉ ĉ ) Ċ Ċ /** Ċ Ġ* ĠExec utes Ġan ĠINSERT Ġoperation Ġand Ġreturns Ġthe Ġgenerated Ġkeys Ġas Ġa Ġsingle - field Ġ` ResultSet ` Ċ Ġ*/ Ċ fun ĠConnection . insert ( insert SQL : ĠString ) Ġ Ġ= Ċĉ ĉ Insert Operation ( Ċĉĉĉ ĉ sql Template Ġ= Ġinsert SQL , Ċĉĉĉ ĉ connection Getter Ġ= Ġ{ Ġthis Ġ}, Ċĉĉĉ ĉ auto Close Ġ= Ġfalse Ċĉ ĉ ) Ċ Ċ fun ĠDataSource . execute ( sql Template : ĠString ) Ġ= ĠUpdate Operation ( Ċĉ ĉ sql Template Ġ= Ġsql Template , Ċĉ ĉ connection Getter Ġ= Ġ{ Ġconnection Ġ}, Ċĉ ĉ auto Close Ġ= Ġtrue Ċ ) Ċ Ċ fun ĠDataSource . select ( sql Template : ĠString ) Ġ Ġ= Ċĉ ĉ Select Operation ( Ċĉĉĉ ĉ sql Template Ġ= Ġsql Template , Ċĉĉĉ ĉ connection Getter Ġ= Ġ{ Ġthis . connection Ġ}, Ċĉĉĉ ĉ auto Close Ġ= Ġtrue Ċĉ ĉ ) ĊĊĊ Ċ fun ĠDataSource . insert ( insert SQL : ĠString ) Ġ= Ċĉ ĉ Insert Operation ( Ċĉĉĉ ĉ sql Template Ġ= Ġinsert SQL , Ċĉĉĉ ĉ connection Getter Ġ= Ġ{ Ġthis . connection Ġ}, Ċĉĉĉ ĉ auto Close Ġ= Ġtrue Ċĉ ĉ ) ĊĊ Ċ class ĠPreparedStatement Builder ( ĊĠĠĠĠĠĠĠ Ġval Ġconnection Getter : Ġ() Ġ-> ĠConnection , ĊĠĠĠĠĠĠĠ Ġval Ġprepared Statement Getter : Ġ( String , Connection ) Ġ-> ĠPreparedStatement , ĊĠĠĠĠĠĠĠ Ġsql Template : ĠString Ċ Ċ ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġname less Parameter Index Ġ= ĠAtomicInteger ( 0 ) ĊĠĠĠ Ġval Ġsql : ĠString Ġ= Ġsql Template . replace ( parameter Regex ," ?") ĊĠĠĠ Ġval Ġfurther Ops : ĠMutable List <( PreparedStatement ) Ġ-> ĠUnit > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġparameter Regex Ġ= ĠRegex (": [_ A - Za - z 0 - 9 ]+ ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġmapped Parameters Ġ= Ġparameter Regex . findAll ( sql Template ). as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . value Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. with Index () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy ({ it . value },{ it . index }) ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠPair < String , Any ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparameters . forEach Ġ{ Ġparameter ( it ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameter ( value : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfurther Ops Ġ+= Ġ{ Ġit . process Parameter ( name less Parameter Index . get And Increment (), Ġvalue ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġfurther Ops Ġ+= Ġ{ Ġit . process Parameters ( parameters ) Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠPair < String , Any ?> ) Ġ{ ĊĠĠĠĠĠĠĠ Ġparameter ( parameter . first , Ġparameter . second ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠString , Ġvalue : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġ( mapped Parameters [ ":" Ġ+ Ġparameter ] Ġ?: Ġthrow ĠException (" Parameter Ġ$ parameter Ġnot Ġfound ! } ")) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. as Sequence () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ Ġi Ġ-> Ġfurther Ops Ġ+= Ġ{ Ġit . process Parameter ( i , Ġvalue ) Ġ} Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġto PreparedStatement (): ĠConnection And PreparedStatement Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġconn Ġ= Ġconnection Getter () ĊĠĠĠĠĠĠĠ Ġval Ġps Ġ= Ġprepared Statement Getter ( sql , Ġconn ) ĊĠĠĠĠĠĠĠ Ġfurther Ops . forEach Ġ{ Ġit ( ps ) Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠConnection And PreparedStatement ( conn , Ġps ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠConnection And PreparedStatement ( val Ġconn : ĠConnection , Ġval Ġps : ĠPreparedStatement ) Ċ Ċ class ĠSelect Operation ( ĊĠĠĠĠĠĠĠ Ġsql Template : ĠString , ĊĠĠĠĠĠĠĠ Ġconnection Getter : Ġ() Ġ-> ĠConnection , ĊĠĠĠĠĠĠĠ Ġval Ġauto Close : ĠBoolean Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġbuilder Ġ= ĠPreparedStatement Builder ( connection Getter , Ġ{ Ġsql , Ġconn Ġ-> Ġconn . prepareStatement ( sql ) Ġ}, Ġsql Template ) ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠPair < String , Any ?> ): ĠSelect Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameters ( parameters ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameter ( value : ĠAny ?): ĠSelect Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠAny ?): ĠSelect Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameters ( parameters ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠPair < String , Any ?> ): ĠSelect Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( parameter ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠString , Ġvalue : ĠAny ?): ĠSelect Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( parameter , value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T : ĠAny > Ġto Flux ( mapper : Ġ( ResultSet ) Ġ-> ĠT ) Ġ= ĠFlux . defer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcps Ġ= Ġbuilder . to PreparedStatement () ĊĠĠĠĠĠĠĠ ĠResultSet State ({ Ġcps . ps . executeQuery () Ġ}, Ġcps . ps , Ġcps . conn , Ġauto Close ). to Flux ( mapper ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T : ĠAny > Ġto Mono ( mapper : Ġ( ResultSet ) Ġ-> ĠT ) Ġ= ĠMono . defer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcps Ġ= Ġbuilder . to PreparedStatement () ĊĠĠĠĠĠĠĠ ĠResultSet State ({ Ġcps . ps . executeQuery () Ġ}, Ġcps . ps , Ġcps . conn , Ġauto Close ). to Mono ( mapper ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠInsert Operation ( ĊĠĠĠĠĠĠĠ Ġsql Template : ĠString , ĊĠĠĠĠĠĠĠ Ġconnection Getter : Ġ() Ġ-> ĠConnection , ĊĠĠĠĠĠĠĠ Ġval Ġauto Close : ĠBoolean Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġbuilder Ġ= ĠPreparedStatement Builder ( connection Getter , Ġ{ Ġsql , Ġconn Ġ-> Ġconn . prepareStatement ( sql , ĠRETURN _ GENERATED _ KEYS ) Ġ}, Ġsql Template ) ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠPair < String , Any ?> ): ĠInsert Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameters ( parameters ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameter ( value : ĠAny ?): ĠInsert Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠAny ?): ĠInsert Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameters ( parameters ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠPair < String , Any ?> ): ĠInsert Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( parameter ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠString , Ġvalue : ĠAny ?): ĠInsert Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( parameter , value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T : ĠAny > Ġto Flux ( mapper : Ġ( ResultSet ) Ġ-> ĠT ) Ġ= ĠFlux . defer Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcps Ġ= Ġbuilder . to PreparedStatement () ĊĠĠĠĠĠĠĠ ĠResultSet State ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcps . ps . executeUpdate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcps . ps . generated Keys ĊĠĠĠĠĠĠĠ Ġ}, Ġcps . ps , Ġcps . conn , Ġauto Close ). to Flux ( mapper ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T : ĠAny > Ġto Mono ( mapper : Ġ( ResultSet ) Ġ-> ĠT ) Ġ= ĠMono . defer Ġ{ ĊĠĠĠĠĠĠĠ Ġto Flux ( mapper ). single () ĊĠĠĠ Ġ} Ċ Ċ } Ċ Ċ class ĠUpdate Operation ( ĊĠĠĠĠĠĠĠ Ġsql Template : ĠString , ĊĠĠĠĠĠĠĠ Ġconnection Getter : Ġ() Ġ-> ĠConnection , ĊĠĠĠĠĠĠĠ Ġval Ġauto Close : ĠBoolean Ċ ) Ġ{ ĊĊĠĠĠ Ġval Ġbuilder Ġ= ĠPreparedStatement Builder ( connection Getter , Ġ{ Ġsql , Ġconn Ġ-> Ġconn . prepareStatement ( sql ) Ġ}, Ġsql Template ) ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠPair < String , Any ?> ): ĠUpdate Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameters ( parameters ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameter ( value : ĠAny ?): ĠUpdate Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġparameters ( var arg Ġparameters : ĠAny ?): ĠUpdate Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameters ( parameters ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠPair < String , Any ?> ): ĠUpdate Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( parameter ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġparameter ( parameter : ĠString , Ġvalue : ĠAny ?): ĠUpdate Operation Ġ{ ĊĠĠĠĠĠĠĠ Ġbuilder . parameter ( parameter , value ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġto Mono () Ġ= ĠMono . defer Ġ{ ĊĠĠĠĠĠĠĠ ĠMono . just ( builder . to PreparedStatement (). ps . executeUpdate ()) ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠResultSet State ( ĊĠĠĠĠĠĠĠ Ġval ĠresultSet Getter : Ġ() Ġ-> ĠResultSet , ĊĠĠĠĠĠĠĠ Ġval Ġstatement : ĠPreparedStatement ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġconnection : ĠConnection ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġval Ġauto Close : ĠBoolean Ċ ) Ġ{ ĊĠĠĠ Ġfun Ġ< T : ĠAny > Ġto Flux ( mapper : Ġ( ResultSet ) Ġ-> ĠT ): ĠFlux < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠFlux . defer Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiterator Ġ= ĠQuery Iterator ( this , ĠresultSet Getter (), Ġmapper , Ġauto Close ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFlux . from Iterable ( iterator . as Iterable ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Terminate Ġ{ Ġiterator . close () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Cancel Ġ{ Ġiterator . cancel () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġ< T : ĠAny > Ġto Mono ( mapper : Ġ( ResultSet ) Ġ-> ĠT ) Ġ= ĠMono . defer Ġ{ ĊĠĠĠĠĠĠĠ Ġto Flux ( mapper ). single () ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠQuery Iterator < out ĠT >( val Ġqs : ĠResultSet State , ĊĉĉĉĉĉĉĠĠ Ġval Ġrs : ĠResultSet , ĊĉĉĉĉĉĉĠĠ Ġval Ġmapper : Ġ( ResultSet ) Ġ-> ĠT , ĊĉĉĉĉĉĉĠĠ Ġval Ġauto Close : ĠBoolean Ċ ) Ġ: ĠIterator < T > Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġdid Next Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġvar Ġhas Next Ġ= Ġfalse ĊĠĠĠ Ġprivate Ġval Ġcancelled Ġ= ĠAtomic Boolean ( false ) ĊĊĠĠĠ Ġoverride Ġfun Ġnext (): ĠT Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(! did Next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrs . next () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdid Next Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġmapper ( rs ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġhas Next (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( cancelled . get ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġex cec ute Cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Next Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! did Next ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhas Next Ġ= Ġrs . next () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdid Next Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġhas Next ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġas Iterable () Ġ= Ġobject : ĠIterable < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġiterator (): ĠIterator < T > Ġ= Ġthis @ Query Iterator ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclose () Ġ{ ĊĠĠĠĠĠĠĠ Ġrs . close () ĊĠĠĠĠĠĠĠ Ġqs . statement ?. close () ĊĠĠĠĠĠĠĠ Ġif Ġ( auto Close ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġqs . connection ?. close () ĊĠĠĠ Ġ} ĊĠĠĠ Ġfun Ġcancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġcancelled . set ( true ) ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġfun Ġex cec ute Cancel () Ġ{ ĊĠĠĠĠĠĠĠ Ġrs . close () ĊĠĠĠĠĠĠĠ Ġqs . statement ?. close () ĊĠĠĠĠĠĠĠ Ġif Ġ( auto Close ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġqs . connection ?. close () ĊĠĠĠ Ġ} Ċ } Ċ Ċ fun ĠPreparedStatement . process Parameters ( v : ĠArray < out ĠAny ?> ) Ġ= Ġv . forEach Indexed Ġ{ Ġi , v 2 Ġ-> Ġprocess Parameter ( i , v 2 )} Ċ Ċ fun ĠPreparedStatement . process Parameter ( pos : ĠInt , Ġarg Val : ĠAny ?) Ġ{ ĊĠĠĠ Ġwhen Ġ( arg Val ) Ġ{ ĊĠĠĠĠĠĠĠ Ġnull Ġ-> Ġset Object ( pos Ġ+ Ġ 1 , Ġnull ) ĊĠĠĠĠĠĠĠ Ġis ĠUUID Ġ-> Ġset Object ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠInt Ġ-> Ġset Int ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠString Ġ-> Ġset String ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠDouble Ġ-> Ġset Double ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠBoolean Ġ-> Ġset Boolean ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠFloat Ġ-> Ġset Float ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠLong Ġ-> Ġset Long ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠLocal Time Ġ-> Ġset Time ( pos Ġ+ Ġ 1 , Ġjava . sql . Time . valueOf ( arg Val )) ĊĠĠĠĠĠĠĠ Ġis ĠLocalDate Ġ-> Ġset Date ( pos Ġ+ Ġ 1 , Ġjava . sql . Date . valueOf ( arg Val )) ĊĠĠĠĠĠĠĠ Ġis ĠLocalDateTime Ġ-> Ġset Timestamp ( pos Ġ+ Ġ 1 , Ġjava . sql . Timestamp . valueOf ( arg Val )) ĊĠĠĠĠĠĠĠ Ġis ĠBigDecimal Ġ-> Ġset BigDecimal ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠInputStream Ġ-> Ġset Binary Stream ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠĠĠĠĠ Ġis ĠEnum < *> Ġ-> Ġset Object ( pos Ġ+ Ġ 1 , Ġarg Val ) ĊĠĠĠ Ġ} Ċ }