import Ġentities . C ities DSL Ċ import Ġentities . Users DSL Ċ import Ġorg . jetbrains . ex posed . sql .* Ċ import Ġorg . jetbrains . ex posed . sql . transactions . transaction Ċ Ċ fun ĠDSL Version () Ġ= Ġtransaction Ġ{ ĊĠĠĠ Ġprintln (" ----------------- ") ĊĠĠĠ Ġprintln (" CRUD ĠDSL ĠVersion ") ĊĠĠĠ Ġprintln (" ----------------- ") ĊĠĠĠ Ġadd Logger ( Std Out Sql Logger ) Ġ// Ġ// ĠPara Ġque Ġse Ġv ea Ġel Ġlog Ġde Ġcons ulas Ġa Ġla Ġbase Ġde Ġdatos ĊĊĠĠĠ Ġ// ĠCreate Ġ 3 Ġform as ĊĠĠĠ Ġval Ġs aint Pet ers burg Id Ġ= ĠC ities DSL . insert Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" St . ĠPet ers burg " ĊĠĠĠ Ġ} Ġget ĠC ities DSL . id ĊĊĠĠĠ Ġval Ġm un ich Id Ġ= ĠC ities DSL . insert AndGet Id Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" M un ich " ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġpr ague Id Ġ= ĠC ities DSL . insert Ġ{ ĊĠĠĠĠĠĠĠ Ġit . update ( name , Ġstring Literal (" ĠĠ ĠP rag ue ĠĠ Ġ"). trim (). substring ( 1 , Ġ 2 )) ĊĠĠĠ Ġ} [ C ities DSL . id ] ĊĊĠĠĠ Ġ// ĠRead ĊĠĠĠ Ġval Ġpr ague Name Ġ= ĠC ities DSL . select Ġ{ ĠC ities DSL . id Ġeq Ġpr ague Id Ġ}. single ()[ C ities DSL . name ] ĊĠĠĠ Ġprintln (" Pr ague Ġname : Ġ$ pr ague Name ") ĊĊĠĠĠ Ġprintln (" All Ġcities :") ĊĊĠĠĠ Ġfor Ġ( city Ġin ĠC ities DSL . selectAll ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("${ city [ C ities DSL . id ]} : Ġ${ city [ C ities DSL . name ]} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠInsert amos Ġusuarios ĊĠĠĠ ĠUsers DSL . insert Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" And rey " ĊĠĠĠĠĠĠĠ Ġit [ Users DSL . city Id ] Ġ= Ġs aint Pet ers burg Id ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠUsers DSL . insert Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" Ser ge y " ĊĠĠĠĠĠĠĠ Ġit [ Users DSL . city Id ] Ġ= Ġm un ich Id ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠUsers DSL . insert Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" E ug ene " ĊĠĠĠĠĠĠĠ Ġit [ Users DSL . city Id ] Ġ= Ġm un ich Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġval Ġa lex Id Ġ= ĠUsers DSL . insert AndGet Id Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" Alex " ĊĠĠĠĠĠĠĠ Ġit [ Users DSL . city Id ] Ġ= Ġpr ague Id ĊĠĠĠ Ġ} ĊĊĠĠĠ ĠUsers DSL . insert Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" Something " ĊĠĠĠĠĠĠĠ Ġit [ Users DSL . city Id ] Ġ= Ġpr ague Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln (" All Ġusers Ġsin Ġjoin :") ĊĠĠĠ Ġfor Ġ( user Ġin ĠUsers DSL . selectAll ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("${ user [ Users DSL . id ]} : Ġ${ user [ Users DSL . name ]} Ġfrom Ġ${ user [ Users DSL . city Id ]} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln (" Datos Ġde ĠAlex ") ĊĠĠĠ Ġvar Ġa lex Ġ= ĠUsers DSL . select Ġ{ ĠUsers DSL . id Ġeq Ġa lex Id Ġ}. single () ĊĠĠĠ Ġprintln ("${ alex [ Users DSL . id ]} : Ġ${ alex [ Users DSL . name ]} Ġfrom Ġ${ alex [ Users DSL . city Id ]} ") ĊĊĠĠĠ Ġ// ĠActual iz amos ĊĠĠĠ ĠUsers DSL . update ({ ĠUsers DSL . id Ġeq Ġa lex Id Ġ}) Ġ{ ĊĠĠĠĠĠĠĠ Ġit [ name ] Ġ= Ġ" Alex ey " ĊĠĠĠ Ġ} ĊĠĠĠ Ġprintln (" Datos Ġde ĠAlex Ġactual izados ") ĊĠĠĠ Ġa lex Ġ= ĠUsers DSL . select Ġ{ ĠUsers DSL . id Ġeq Ġa lex Id Ġ}. single () ĊĠĠĠ Ġprintln ("${ alex [ Users DSL . id ]} : Ġ${ alex [ Users DSL . name ]} Ġfrom Ġ${ alex [ Users DSL . city Id ]} ") ĊĊĠĠĠ Ġprintln (" Bor ram os Ġa Ġqu ien Ġt eng a Ġ\"% thing \" ") ĊĠĠĠ ĠUsers DSL . delete Where { ĠUsers DSL . name Ġlike Ġ"% thing "} ĊĊĠĠĠ Ġprintln (" All Ġusers Ġsin Ġjoin :") ĊĠĠĠ Ġfor Ġ( user Ġin ĠUsers DSL . selectAll ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġprintln ("${ user [ Users DSL . id ]} : Ġ${ user [ Users DSL . name ]} Ġfrom Ġ${ user [ Users DSL . city Id ]} ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln (" Join Ġwith Ġforeign Ġkey ĠÂ¿ Qu ien Ġv ive Ġen ĠSt . ĠP tes burg ?: ") ĊĊĠĠĠ Ġ( Users DSL Ġinner Join ĠC ities DSL ). slice ( Users DSL . name , ĠUsers DSL . city Id , ĠC ities DSL . name ). ĊĠĠĠ Ġselect Ġ{ ĠC ities DSL . name . eq (" St . ĠPet ers burg ") Ġor ĠUsers DSL . city Id . isNull ()}. forEach Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( it [ Users DSL . city Id ] Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ it [ Users DSL . name ]} Ġlives Ġin Ġ${ it [ C ities DSL . name ]} ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ it [ Users DSL . name ]} Ġlives Ġnow here ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprintln (" Join Ġwith Ġforeign Ġkey ĠÂ¿ Don de Ġv iven Ġlos Ġusuarios ?: ") ĊĠĠĠ Ġ( Users DSL Ġinner Join ĠC ities DSL ). slice ( Users DSL . name , ĠUsers DSL . city Id , ĠC ities DSL . name ) ĊĠĠĠĠĠĠĠ Ġ. selectAll () ĊĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln ("${ it [ Users DSL . name ]} Ġlives Ġin Ġ${ it [ C ities DSL . name ]} ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊ Ċ }