package Ġorg . joo by . ex posed Ċ Ċ import Ġcom . google . inject . Binder Ċ import Ġcom . google . inject . Key Ċ import Ġcom . google . inject . name . Names Ċ import Ġcom . types afe . config . Config Ċ import Ġorg . jetbrains . ex posed . sql . Database Ċ import Ġorg . joo by . Env Ċ import Ġorg . joo by . J oo by Ċ import Ġjava . util . NoSuch ElementException Ċ import Ġjavax . sql . DataSource Ċ Ċ /** Ċ Ġ* Ġ< h 1 > ex posed </ h 1 > Ċ Ġ* Ġ< p > Ċ Ġ* Ġ Ġ< a Ġhref =" https :// github . com / Jet Brains / Ex posed "> Ex posed </ a > Ġis Ġa Ġprototype Ġfor Ġa Ġlightweight ĠSQL Ċ Ġ* Ġ Ġlibrary Ġwritten Ġover ĠJDBC Ġdriver Ġfor ĠKotlin Ġlanguage Ċ Ġ* Ġ</ p > Ċ Ġ* Ċ Ġ* Ġ< p > Ċ Ġ* ĠThis Ġmodule Ġdepends Ġon Ġ{@ link Ġorg . joo by . jdbc . Jdbc } Ġmodule , Ġmake Ġsure Ġyou Ġread Ġthe Ġdoc Ġof Ġthe Ċ Ġ* Ġ{@ link Ġorg . joo by . jdbc . Jdbc } Ġmodule . Ċ Ġ* Ġ</ p > Ċ Ġ* Ċ Ġ* Ġ< h 2 > exports </ h 2 > Ċ Ġ* Ġ< ul > Ċ Ġ* Ġ< li > One Ġor Ġmore ĠDatabase Ġobjects </ li > Ċ Ġ* Ġ</ ul > Ċ Ġ* Ċ Ġ* Ġ< h 2 > usage </ h 2 > Ċ Ġ* Ġ< pre >{@ code Ċ Ġ* Ġ{ Ċ Ġ* ĠĠ Ġuse ( new ĠJdbc ()); Ċ Ġ* Ċ Ġ* ĠĠ Ġuse ( new ĠEx posed ()); Ċ Ġ* Ċ Ġ* ĠĠ Ġget ("/ db ") Ġ{ Ċ Ġ* ĠĠĠĠ Ġval Ġdb Ġ= Ġrequire ( Database :: class ) Ċ Ġ* ĠĠĠĠ Ġtransaction Ġ( db ) Ġ{ Ċ Ġ* ĠĠĠĠĠĠ Ġ// ĠWork Ġwith Ġdb ... Ċ Ġ* ĠĠĠĠ Ġ} Ċ Ġ* ĠĠ Ġ} Ċ Ġ* Ġ} Ċ Ġ* Ġ}</ pre > Ċ Ġ* Ċ Ġ* Ġ< h 2 > multiple Ġdatabases </ h 2 > Ċ Ġ* Ċ Ġ* Ġ< pre >{@ code Ċ Ġ* Ġ{ Ċ Ġ* ĠĠ Ġuse ( new ĠJdbc (" db 1 ")); Ċ Ġ* Ċ Ġ* ĠĠ Ġuse ( new ĠJdbc (" db 2 ")); Ċ Ġ* Ċ Ġ* ĠĠ Ġuse ( new ĠEx posed (" db 1 ")); Ċ Ġ* Ċ Ġ* ĠĠ Ġuse ( new ĠEx posed (" db 2 ")); Ċ Ġ* Ċ Ġ* ĠĠ Ġget ("/ db ") Ġ{ Ċ Ġ* ĠĠĠĠ Ġval Ġdb 1 Ġ= Ġrequire (" db 1 ", ĠDatabase :: class ) Ċ Ġ* ĠĠĠĠ Ġ// ĠWork Ġwith Ġdb 1 ... Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġval Ġdb 2 Ġ= Ġrequire (" db 2 ", ĠDatabase :: class ) Ċ Ġ* ĠĠĠĠ Ġ// ĠWork Ġwith Ġdb 2 ... Ċ Ġ* ĠĠ Ġ} Ċ Ġ* Ġ} Ċ Ġ* Ġ}</ pre > Ċ Ġ* Ċ Ġ* Ġ@ author Ġed gar Ċ Ġ*/ Ċ class ĠEx posed ( val Ġname : ĠString Ġ= Ġ" db ") Ġ: ĠJ oo by . Module Ġ{ ĊĠ Ġoverride Ġfun Ġconfigure ( env : ĠEnv , Ġconf : ĠConfig , Ġbinder : ĠB inder ) Ġ{ ĊĠĠĠ Ġval Ġds key Ġ= ĠKey . get ( DataSource :: class . java , ĠNames . named ( name )) ĊĠĠĠ Ġval Ġds Ġ= Ġenv . get ( ds key ) ĊĠĠĠĠĠĠĠ Ġ. orElse Throw Ġ{ ĠNoSuch ElementException (" DataSource Ġmissing : Ġ$ ds key ") Ġ} ĊĠĠĠ Ġval Ġdb Ġ= ĠDatabase . connect ( ds ) ĊĠĠĠ Ġenv . service Key (). generate ( Database :: class . java , Ġname ) Ġ{ Ġkey Ġ-> Ġbinder . bind ( key ). to Instance ( db ) Ġ} ĊĠ Ġ} Ċ } Ċ