私のLuminusアプリには次のものがあります:
(defn page1 [id]
(layout/render "page1.html"
{:article (db/get-single-article {:id (Integer/parseInt id)}))
同じ db 接続内で db に対して複数の異なる要求を実行したいと考えています。どうやってやるの?
あなたの質問から、同じ DB 接続を再利用して複数の HTTP リクエストを処理するか、JDBC API を使用して複数の関数を呼び出す単一の HTTP リクエストを再利用するかが明確ではありません (したがって、これらの JDBC 呼び出しはすべて同じ DB 接続を使用します)。
後者の場合は、with-db-connection
JDBC API を呼び出すすべての関数をラップするために使用できます。with-db-transaction
すべての SQL 操作が 1 つの DB トランザクションの一部である必要がある場合にも使用できます。
前者の場合、複数の HTTP リクエストに対して同じ接続を再利用する必要がある理由はわかりませんが、HTTP は定義上ステートレスであり、複数の問題を引き起こすため、一般的なイディオムではありません。
接続をリング HTTP セッションに保存して、セッションに関連付けられたリクエストを取得し、JDBC ロジックに使用するたびに取得できるようにすることができます。
ただし、このようなソリューションには次の欠点があります。