Skip to content

Commit eebe71c

Browse files
committed
Switch over to org.clojure/java.jdbc
1 parent e0d360f commit eebe71c

File tree

3 files changed

+27
-29
lines changed

3 files changed

+27
-29
lines changed

dev-resources/user.clj

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
[clojure.java.browse :refer [browse-url]]
55
[clojure-game-geek.system :as system]
66
[clojure.walk :as walk]
7+
clojure.java.jdbc.spec
78
[com.stuartsierra.component :as component])
89
(:import (clojure.lang IPersistentMap)))
910

project.clj

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,10 +3,11 @@
33
:url "https://github.com/walmartlabs/clojure-game-geek"
44
:license {:name "Eclipse Public License"
55
:url "http://www.eclipse.org/legal/epl-v10.html"}
6-
:dependencies [[org.clojure/clojure "1.8.0"]
7-
[org.clojure/core.async "0.3.443"]
6+
:dependencies [[org.clojure/clojure "1.9.0"]
87
[com.stuartsierra/component "0.3.2"]
9-
[com.walmartlabs/lacinia "0.25.0"]
10-
[com.walmartlabs/lacinia-pedestal "0.7.0"]
11-
[alaisi/postgres.async "0.8.0"]
12-
[io.aviso/logging "0.2.0"]])
8+
[com.walmartlabs/lacinia "0.30.0"]
9+
[com.walmartlabs/lacinia-pedestal "0.10.0"]
10+
[org.clojure/java.jdbc "0.7.8"]
11+
[org.postgresql/postgresql "42.2.5.jre7"]
12+
[com.mchange/c3p0 "0.9.5.2"]
13+
[io.aviso/logging "0.3.1"]])

src/clojure_game_geek/db.clj

Lines changed: 19 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,45 +1,41 @@
11
(ns clojure-game-geek.db
22
(:require
3-
[clojure.java.io :as io]
43
[com.stuartsierra.component :as component]
5-
[postgres.async :refer [open-db query! close-db!]]
6-
[clojure.core.async :refer [<!!]]))
4+
[clojure.java.jdbc :as jdbc])
5+
(:import (com.mchange.v2.c3p0 ComboPooledDataSource)))
76

8-
(defrecord ClojureGameGeekDb [conn]
7+
(defn ^:private pooled-data-source
8+
[host dbname user password port]
9+
{:datasource
10+
(doto (ComboPooledDataSource.)
11+
(.setDriverClass "org.postgresql.Driver" )
12+
(.setJdbcUrl (str "jdbc:postgresql://" host ":" port "/" dbname))
13+
(.setUser user)
14+
(.setPassword password))})
15+
16+
(defrecord ClojureGameGeekDb [ds]
917

1018
component/Lifecycle
1119

1220
(start [this]
1321
(assoc this
14-
:conn (open-db {:hostname "localhost"
15-
:database "cggdb"
16-
:username "cgg_role"
17-
:password "lacinia"
18-
;; Host port mapped to 5432 in the container
19-
:port 25432})))
22+
:ds (pooled-data-source "localhost" "cggdb" "cgg_role" "lacinia" 25432)))
2023

2124
(stop [this]
22-
(close-db! conn)
23-
(assoc this :conn nil)))
25+
(-> ds :datasource .close)
26+
(assoc this :ds nil)))
2427

2528
(defn new-db
2629
[]
2730
{:db (map->ClojureGameGeekDb {})})
2831

29-
(defn ^:private take!
30-
[ch]
31-
(let [v (<!! ch)]
32-
(if (instance? Throwable v)
33-
(throw v)
34-
v)))
3532

3633
(defn find-game-by-id
3734
[component game-id]
38-
(-> (query! (:conn component)
39-
["select game_id, name, summary, min_players, max_players, created_at, updated_at
40-
from board_game where game_id = $1" game-id])
41-
take!
42-
first))
35+
(first
36+
(jdbc/query (:ds component)
37+
["select game_id, name, summary, min_players, max_players, created_at, updated_at
38+
from board_game where game_id = ?" game-id])))
4339

4440
(defn find-member-by-id
4541
[component member-id]

0 commit comments

Comments
 (0)