Я пытаюсь подключить мою программу clojure к postgresql db. У меня есть необходимые зависимости. Это мой repository.clj
файл
(ns webdev.repository
(:require [clojure.java.jdbc :as db] ))
(defn create-tables [db]
(db/execute! db ["create table if not exists movies(id serial not null,
name varchar not null, primary key (id));"])
(db/execute! db ["create table if not exists users(id varchar not null,
f_name varchar not null, l_name varchar not null, primary key(id));"])
)
Это часть моего core.clj
файла
(ns webdev.core
(:require [webdev.repository :as repo])
(:require [ring.adapter.jetty :as jetty]
[ring.middleware.reload :refer [wrap-reload]]
[compojure.core :refer [defroutes GET]]
[compojure.route :refer [not-found]]
[ring.handler.dump :refer [handle-dump]]
))
(def db "postgresql://localhost:5432/webdev")
(repo/create-tables db) ;;call to create the tables
...
...
Когда я запускаю это, я получаю сообщение об ошибке
Caused by: org.postgresql.util.PSQLException: This ResultSet is closed.
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.checkClosed(AbstractJdbc2ResultSet.java:2654)
at org.postgresql.jdbc2.AbstractJdbc2ResultSet.setFetchSize(AbstractJdbc2ResultSet.java:1771)
at org.postgresql.jdbc4.Jdbc4Statement.createResultSet(Jdbc4Statement.java:39)
at org.postgresql.jdbc2.AbstractJdbc2Statement$StatementResultHandler.handleResultRows(AbstractJdbc2Statement.java:211)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1773)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:512)
Невозможно выяснить, что я делаю неправильно.
EDIT
Выбор утверждений, кажется, работает. Но операторы вставки и создания таблицы выдают ошибку «Этот набор результатов закрыт»