package Ġdev . mo et z . ko ar l . backend . persistence . sql Ċ Ċ import Ġcom . zaxxer . hikari . HikariConfig Ċ Ċ sealed Ġclass ĠDatabase Source Ġ{ ĊĊĠĠĠ Ġprotected Ġabstract Ġval ĠhikariConfig : ĠH ikariConfig ĊĊĠĠĠ Ġval Ġconfig : ĠH ikariConfig ĊĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠhikariConfig . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠH 2 InMemory Ġ: ĠDatabase Source () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠhikariConfig : ĠH ikariConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠH ikariConfig (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdriver ClassName Ġ= Ġ" org . h 2 . Driver " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjdbc Url Ġ= Ġ" jdbc : h 2 : mem : test " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum PoolSize Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Auto Commit Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Isolation Ġ= Ġ" TRANSACTION _ REPEAT ABLE _ READ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠJdbc ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġjdbc Verb : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġhost : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġport : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdatabase : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġusername : ĠString , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġpassword : ĠString ĊĠĠĠ Ġ) Ġ: ĠDatabase Source () Ġ{ ĊĠĠĠĠĠĠĠ Ġenum Ġclass ĠDriver Class ( val Ġtype : ĠString , Ġval ĠclassName : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMySQL (" mysql ", Ġ" com . mysql . cj . jdbc . Driver "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠMar iaDB (" m ariadb ", Ġ" org . m ariadb . jdbc . Driver "), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPostgreSQL (" postgresql ", Ġ" org . postgresql . Driver ") ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġval ĠhikariConfig : ĠH ikariConfig ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠH ikariConfig (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdriver ClassName Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDriver Class . values (). first OrNull Ġ{ Ġit . type Ġ== Ġit . type Ġ} ?. className ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ?: Ġthrow ĠIllegalArgumentException ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" No Ġdriver Ġfound Ġfor Ġ$ jdbc Verb . Ġ" Ġ+ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" Currently Ġonly Ġ${ Driver Class . values () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. map Ġ{ Ġit . type Ġ}} Ġare Ġsupported ." ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjdbc Url Ġ= Ġ" jdbc :$ jdbc Verb :// $ host :$ port /$ database " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġusername Ġ= Ġthis @ Jdbc . username ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġthis @ Jdbc . password ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmaximum PoolSize Ġ= Ġ 3 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Auto Commit Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtransaction Isolation Ġ= Ġ" TRANSACTION _ REPEAT ABLE _ READ " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ } Ċ