package Ġcom . example . demo Ċ Ċ import Ġcom . zaxxer . hikari . HikariConfig Ċ import Ġcom . zaxxer . hikari . Hikari DataSource Ċ import Ġjava . sql . ResultSet Ċ import Ġjava . sql . SQLException Ċ Ċ class ĠDatabase Helper Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġin Ġthe Ġformat Ġof Ġproject : region : instance ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠCLO UD _ SQL _ CONNECTION _ NAME Ġ= Ġ" project : region : instance " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSOCKET _ FACTORY Ġ= Ġ" com . google . cloud . sql . mysql . Socket Factory " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠJDBC _ URL Ġ= Ġ" jdbc : mysql :// 1 2 7 . 0 . 0 . 1 : 3 3 0 6 " ĊĠĠĠĠĠĠĠ Ġ// Ġdatabase Ġusername , Ġsuch Ġas Ġ" admin " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠUSER NAME Ġ= Ġ" admin " ĊĠĠĠĠĠĠĠ Ġ// Ġdatabase Ġpassword ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠPASSWORD Ġ= Ġ" aj c ak j NJ N KJ N KN " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval ĠhikariConfig Ġ= ĠH ikariConfig (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġjdbc Url Ġ= ĠJDBC _ URL ĊĠĠĠĠĠĠĠ Ġusername Ġ= ĠUSER NAME ĊĠĠĠĠĠĠĠ Ġpassword Ġ= ĠPASSWORD ĊĠĠĠĠĠĠĠ Ġadd DataSource Property (" socket Factory ", Ġ ĠSOCKET _ FACTORY ) ĊĠĠĠĠĠĠĠ Ġadd DataSource Property (" cloud Sql Instance ", ĠCLO UD _ SQL _ CONNECTION _ NAME ) ĊĠĠĠĠĠĠĠ Ġadd DataSource Property (" use SSL ", Ġ" false ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrun Query ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpool Ġ= ĠH ikari DataSource ( h ikariConfig ) ĊĠĠĠĠĠĠĠ Ġval Ġcon Ġ= Ġpool . connection ĊĠĠĠĠĠĠĠ Ġval Ġpst Ġ= Ġcon . prepareStatement ( query ) ĊĠĠĠĠĠĠĠ Ġvar Ġrs Ġ: ĠResultSet ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrs Ġ= Ġpst . executeQuery () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhile Ġ( rs . next ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġweird ly ĠcolumnIndex Ġstarts Ġfrom Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSystem . out . format (" DATABASE ĠQUERY ĠRESULT : Ġ% d Ġ% s ", Ġrs . getInt ( 1 ), Ġrs . getString ( 2 )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSQLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠ Ġ} Ġfinally Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrs ?. close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpst . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcon . close () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpool . close () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( ex : ĠSQLException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġprintln (" error Ġclosing : Ġ${ ex . message }") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }