使い方、ついでにちょっとしたポイントなどなどまとめてみました。ORマッパーやjOOQ導入を検討されている方の参考になればと思います。Serverなどのデータベースへ接続(ユーザ登録、検索、更新とかとか)が必要になるケースを想定した場合、データベース接続するためのライブラリ利用して(jOOQなどのORマッパーを利用しない場合)こんな感じでデータを取得することになります。>>JDBCのお約束と書き方例(入力を受け取ってSQLを実行する例)別にこれでも動くし、問題はないのですが、jOOQを導入することでこれらのメリットがあります。入力1);クエリの側だけ文字列で作って後からwhereの条件を文字列ではめ込んでそれらセットでクエリが完成するのではなく、jOOQを使うと直感的にSQLっぽくこんな感じで書けたりします。1jOOQサンプルcreate.select(USER_DETAIL.USER_NAME).from(USER_DETAIL).where(USER_DETAIL.USER_ID,1)ORマッパーを利用しない場合、クエリの側を文字列で作ると本物のwhere句をはめ込んだ最終的なクエリとは少し違うので、複雑なクエリになると読み辛かったり、ただの文字列なのでIDE(IntelliJとかEclipseとか)の静的解析でバグ検知できず、プログラムを実行しないとバグが検知できないことが多い。それに対して、jOOQ(などのORマッパー)を利用するとクエリをjavaの世界のオブジェクトを利用して実行できるので、クエリにミスがあるとIDEが静的解析で教えてくれてバグ検知が早いことが多いです。他のORマッパー(HibernateやMyBatis、DBFlute)と比べてもjOOQは流したいクエリに近い記述ができ、そのおかげで、クエリでかける事はjOOQでも書けるし、複雑なクエリでも読みやすいです。create.selectFrom(USER_DETAIL).fetch();こんな感じで書けます。クエリを実行するとUserDetailRecordというjavaの世界のオブジェクトに取得結果が入ってくれるので扱いやすいです。MEMOjOOQの例で出しているUSER_DETAIL(テーブル)、USER_DETAIL.USER_NAME(カラム)、UserDetailRecordは、DBから自動生成したJavaの世界でテーブル、カラムを表すクラスです。自動生成の具体的なやり方については後述します。データベースのある断面から自動生成をする事で、その断面でのテーブル、レコード、カラムをjavaの世界で表現するクラスが作成でき、それらを利用してデータベースとやり取りすることで、データベースの世界をjavaの世界で表現できるようになるため簡単にjavaでテーブル操作できます。ORマッパーの一番のメリットはそこにあります。bootとjOOQでpostgreSQLと連携するための準備jOOQを導入する際のポイントについて解説します。ソースコードは>>githubに公開しているので動作確認する場合は落として利用してください。Desktopのセットアップが必要になります。bootで作成したAPIのテストコードのためのデータ準備それではポイントに絞って解説行きます。jOOQがDBからJavaのクラスを自動生成するプロジェクトを用意します。(backendプロジェクトと混在させるとごちゃごちゃするので別にしておくのがオススメ)>>jOOQプロジェクトjOOQとJDBCライブラリを利用するための設定をjooqプロジェクトとbackendプロジェクトのpomに入れます。>>該当ソース(backend)>>該当ソース(jooq)自動生成用の設定(DB接続情報などなど)をjooqプロジェクトのpomに入れます。>>該当ソースbackendプロジェクトからjooqプロジェクトで自動生成したクラスを利用できるようにのbackendプロジェクトのpomに依存関係を追加します。bootとjOOQでpostgreSQLと連携するための準備ここからは、ローカルのdocker上に立ち上げたpostgreSQLと繋いでテーブル、カラムなどに対応したjavaクラスを自動生成していきます。コマンド一つなので簡単です!!jooqプロジェクト直下で以下コマンドを実行すれば自動生成されます。jooq-codegen:generateこれだけです。bootとjOOQでpostgreSQLと連携ここからは、jOOQを利用してAPIからテーブルからデータを取得してそのままレスポンス返却していきます。USER_DETAILデータベースが起動していない、接続できない場合はデータベースとの接続に失敗してDB接続エラーみたいな例外をスローするんだな。理解で今回は十分です。ちなみに事前にセットアップしてあるデータはこんな感じです。(flywayで登録)動作を確認するには、backendプロジェクト直下で以下コマンドを実行してAPIを立ち上げます。公開しているソースコードではjOOQのデバックモードにしているので、こんな感じで実際に投げたSQLをログ出力してくれます。性能が思うように出ないAPIがあって、APIから実行するクエリの改善が必要。APIから実行しているwhere句の条件などはめ込んだ最終的なクエリは何か??をパッと取得して調査したい。みたいなときにデバッグモードでログ取得してクエリの解析を進めていきます。(確か、昔MyBatisを利用していたときには条件まではめ込んだ最終的なクエリまではログ出力できなかった気がする。)すみません、、長くなりました。い方について解説しました。他のORマッパーと比較しても個人的にはお気に入りなやつです。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。